重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

フォームの題名「Me.Caption」は条件によって変化させたい為、
デザインビューの
プロパティの表題部分は空欄にして、
フォームを開いてからVBAで指定しています。

そのためレコードセットはスナップショットにしているのですが
何度かフォームを開いたり閉じたりしているうちに
デザインビューで確認したとき
いつのまにか表題にVBAでしてした文字列が入っているときがあります。
(毎回ではないです)

どのタイミングではいっちゃうのでしょうか?
調べているのですがよくわかりません。

よろしくお願いします。

A 回答 (1件)

> レコードセットはスナップショットにしている



この設定によって、入力/編集が制限されるのは、連結コントロール
(コントロールソースにフィールド名が指定されたコントロール)だけです。
(同じフォームのプロパティで『更新の許可』を「いいえ」にした場合は、
 非連結コントロールに対しても入力ができなくなります)

また、上記の入力/編集の制限は、あくまで「ユーザーがキーボード
を使って行った入力」に対してのみ有効で、VBA/マクロを使った
代入操作には制限がかかりません。
(ですので、VBA/マクロによる入力をとめる場合は、Select Caseや
 If文を使用して、自分で分岐処理を書くしかありません)


> いつのまにか表題にVBAでしてした文字列が入っているときがあります。

とりあえず確実に再現する方法が1つ見つかりました(Access2003):
 1)フォームをフォームビューで開く
 2)フォームのプロパティシートを開く
 3)『イベント』タブを表示し、ビルダからVBE画面を表示
 4)何もせずにVBE画面を閉じる(もちろん編集しても可)
 5)フォームを閉じる
  (「保存しますか」のメッセージで「はい」を選択)

・・・以上です。
フォームのプロパティシートからVBE画面を開くと、その時点でフォームに
対して「変更あり」のフラグが立ちます。
このため、フォームビューで開いた状態(→VBAでCaptionが設定済)で
上記の操作(ビルダによるVBEへの切り替え)を行うと、上書き保存時に
Captionの値まで保存されてしまうようです。
(「一旦デザインビューに切り替えてコントロールの追加や位置変更をし、
 再度フォームビューにしてから上書き保存」というように、「ビルダを起動
 しないで上書き保存した場合」は、Captionは保存されませんでした:
 ビルダ絡みの仕様もしくはバグかもしれません)

1wer56さんの場合に当てはまるかはわかりませんが、参考まで。
    • good
    • 0
この回答へのお礼

大変参考になりました!ありがとうございます。

お礼日時:2009/05/16 23:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!