- ベストアンサー
スナップショットにしているのに値が代入される(アクセス)
フォームの題名「Me.Caption」は条件によって変化させたい為、 デザインビューの プロパティの表題部分は空欄にして、 フォームを開いてからVBAで指定しています。 そのためレコードセットはスナップショットにしているのですが 何度かフォームを開いたり閉じたりしているうちに デザインビューで確認したとき いつのまにか表題にVBAでしてした文字列が入っているときがあります。 (毎回ではないです) どのタイミングではいっちゃうのでしょうか? 調べているのですがよくわかりません。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> レコードセットはスナップショットにしている この設定によって、入力/編集が制限されるのは、連結コントロール (コントロールソースにフィールド名が指定されたコントロール)だけです。 (同じフォームのプロパティで『更新の許可』を「いいえ」にした場合は、 非連結コントロールに対しても入力ができなくなります) また、上記の入力/編集の制限は、あくまで「ユーザーがキーボード を使って行った入力」に対してのみ有効で、VBA/マクロを使った 代入操作には制限がかかりません。 (ですので、VBA/マクロによる入力をとめる場合は、Select Caseや If文を使用して、自分で分岐処理を書くしかありません) > いつのまにか表題にVBAでしてした文字列が入っているときがあります。 とりあえず確実に再現する方法が1つ見つかりました(Access2003): 1)フォームをフォームビューで開く 2)フォームのプロパティシートを開く 3)『イベント』タブを表示し、ビルダからVBE画面を表示 4)何もせずにVBE画面を閉じる(もちろん編集しても可) 5)フォームを閉じる (「保存しますか」のメッセージで「はい」を選択) ・・・以上です。 フォームのプロパティシートからVBE画面を開くと、その時点でフォームに 対して「変更あり」のフラグが立ちます。 このため、フォームビューで開いた状態(→VBAでCaptionが設定済)で 上記の操作(ビルダによるVBEへの切り替え)を行うと、上書き保存時に Captionの値まで保存されてしまうようです。 (「一旦デザインビューに切り替えてコントロールの追加や位置変更をし、 再度フォームビューにしてから上書き保存」というように、「ビルダを起動 しないで上書き保存した場合」は、Captionは保存されませんでした: ビルダ絡みの仕様もしくはバグかもしれません) 1wer56さんの場合に当てはまるかはわかりませんが、参考まで。
お礼
大変参考になりました!ありがとうございます。