最近、古い Access のファイルの修正を行っていたのですが、 VBA を修正した後に保存ができなくなるという問題にあたってしまいました。
いろいろ調べてみたところ、 VBA 付のレポートを名称変更するとこの状態になってしまことが分かりました。
なんとなくな回避方法も見えたので、備忘録として発現方法を記しておきたいと思います。
まず、 Access でレポートを作ります。
この時、名称内に全角の「.」が入る名前にしてみましょう。

ここで VBA を有効にするのですが、表示をデザイン ビューに変更していきます。

変更出来たらレポートのプロパティを開きましょう。
プロパティはレポート デザインタブのプロパティシートを開くと表示できます。

表示したらドロップダウンからレポートを選択すればレポートのプロパティを変更できます。
この中に「コード保持」という項目があるので、これを「はい」に変更しましょう。これで VBA を記述できるようになります。

例えばレポートプロパティのイベントタブを開き読み込み時にイベントプロシージャをつけてみます。
イベントプロシージャを選択したら三点リーダーをクリックしてください。

すると VBA が開き、クラスオブジェクトにレポートの名前が書かれていることが分かります。

ここで、レポート名を変更してみます。レポートを閉じてから名称を選択して F2 を押せば名称を変更できます。

この時にも全角ドットの入った名称にすると、なんと VBA の名称が半角に変わってしまうのです。このケースだと3.が 3. に変わっているのが分かります。

この状態で コードを書き換えてから保存してみると、、、

何故か Access 側の方でレポートが表示されています。さっきまで閉じていたはずなのに、、、

このレポートを閉じて保存してみましょう。
するとダイアログが表示され、保存する「はい」ボタンは押せるのですが、反応がなくなります。

何度も閉じるを押しても閉じないという状態になってしまいます。
「いいえ」を押せば VBA の保存前の状態に巻き戻りますが保存は可能です。
この状態になるともう VBA の変更はできないので、 VBA を更新する前にレポート名からドットをなくしてみてください。

すると VBA 側のクラスオブジェクト名からもドットが消えてなくなります。
この状態であればコードを変更して保存することができます。

保存ボタンを押してもレポートは開いていません。

これで VBA は保存できたので、最後にレポート名を戻しておきましょう。

相変わらず VBA 側は半角のドットが入った名称に戻ってしまいますが、コードは保存され、前の名称はそのまま残すことができました。

おそらく名称変更のバグで、全角を半角に替えるロジックが入っていることが問題のようです。
Access ファイルの保存ができなくなった場合、 VBA の名称にドットが含まれていないかチェックしてみるとよさそうです!
音楽:地よりはずめと