楠部 さん、
コメントありがとうございます。うまく動かない(テキストボックスに書き込みができない)フォームに設定してあったVBAを削除したら 書き込みができるようになりました。しかし、このVBAは問題となっているテキストボックスと何の関係もありません。本メール末に コードを示してあります。
このVBAのどこに テキストボックスへの書き込みを禁止する要因があるのでしょうか?
よろしくお願いします。
> [start_d]、[end_d] テキスト ボックス の各イベントには何も設定していない前提
<< はい、その通りです、イベントには何も設定していません。
> フォームの該当のテキスト ボックスをいったん削除して、作り直すとどのようになるか試してみてはどうでしょうか。
<< いったん削除して、もう一度作り直してみました、しかし結果は同じでした。
また、フォーム上に新規にマクロにもVBAにもボタンにも何の関係もない非連結のテキストボックスを作って、このデータプロパティの設定を 利用可能「はい」 編集ロック「いいえ」に設定しても カーソルをここへ移動できますが、キー入力はまったくできません。
> [レコードソース] の指定方法、[規定値を取得] と [読み込み時に並び替えを適用] の設定が異なっているは少し気になる
<< 正常に動くフォームと同じにしましたが、まったく変わりません。ダメです。
両者の違いとして 書き込めないフォームの方は フォームを開くときのイベントに 以下のVBA を登録してあります。正常に動くフォームは このVBA は登録してありません。
Private Sub Form_Open(Cancel As Integer)
Dim c_ix As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Me![c_id] = Me.OpenArgs << 受け取った引数を 非表示のテキストボックスに保存しています。
Set db = CurrentDb()
Set rs = db.OpenRecordset("course_data_table", dbOpenDynaset)
Me![course_name_show] = DLookup("course_name", "course_data_table", "[id]=" & Me![c_id])
<<< フォームヘッダに ゴルフ場名をセット
c_ix = DLookup("club_name", "course_data_table", "[id]=" & Me![c_id])
Me![club_name_show] = DLookup("club_name", "club_name_table", "[id]=" & c_ix)
<<< フォームヘッダに コース名をセット
i = 1
Do While i <= 9 <<9ホール分
Select Case rs("p" & i) << パー数に応じてSH(ショート)、MDL(ミドル)、LNG(ロング)の表示をセット
Case 3
Me("pp" & i) = "SH" << テキストボックス[pp1][pp2][pp3]などはフォームヘッダにあります
Case 4
Me("pp" & i) = "MDL"
Case 5
Me("pp" & i) = "LNG"
End Select
i = i + 1
Loop
Set rs = Nothing
End Sub
このVBAを削除したら テキストボックスに書き込みができるようになりましたが、このVBAのどこに このVBAとは無関係なテキストボックスに書き込みができなくなる処理が含まれているのでしょうか?
よろしくお願いします。