Microsoft Access 掲示板

メインフォームから サブフォームの値を選んで メインフォームで修正するやり方 / 9

16 コメント
views
4 フォロー
9

メインフォームに"txt住所"という名前のテキストボックスと”cmd新規登録”という名前のコマンドボタンと、チェックボックス48個都道府県があります。これと”Chk実査flg”という名前のチェックボックスがあります。

1回目のcmd新規登録をクリックし、サブフォームへの入力が許可されます。

2回目のchk新規入力ボタンをクリックすると
選んだ都道府県が テキストボックスに表示

3回目のcmd新規入力コマンドボタンをクリックして確定して、
サブフォームにレコードが収まる

これらの機能を1つのコマンドボタンに集約しているのであれば、ソースコード云々以前にフォームの設計自体に問題があると申し上げざるを得ません。

実行時エラーが表示され、、、オブジェクトが必要ですと、実行時エラーが表示されちゃいます

どのステートメントを実行しようとした時にその実行時エラーが発生したのかを具体的に明記して下さい。

'ADO接続開始
Dim Cn ADODB.Connection
Dim Rs ADODB.Recordset

もし上記のステートメントを本当にこの通りに記述されているのであれば、変数名と型の間に As キーワードが記述されていないため、実行時エラーどころかコンパイルエラーが発生するはず。

Rs.Open"MST実査実績一覧",Cn, adOpenKeyset, adLockOptimistic

また、Cn にも Rs にも何のオブジェクトも渡されていない状態なのであれば、このステートメントでも実行時エラーが発生します。

Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset

Set Cn = CurrentProject.Connection
Set Rs = New ADODB.Recordset

Rs.Open "MST実査実績一覧", Cn, adOpenKeyset, adLockOptimistic

If Me.Chk北海道.Value=True Then
Me.Txt住所.Value = "北海道札幌市"
Rs!実査住所 = Me.Chk北海道札幌市.Value
Rs!実査住所 = Me.Txt実査住所.Value
Exit Sub
End If

そこは Exit Sub ステートメントを呼び出すべきタイミングではないでしょう。

Update

Rs.Update

現状(あからさまに判る範囲で)修正すべき箇所として挙げられるのは以上のみ。
他のステートメントについては、現時点では評価のしようがありません。

  • メインフォームは連結フォームであるか、それとも非連結フォームであるか。

  • メインフォームが連結フォームである場合、メインフォームのレコードソースはどのテーブルであるか。

  • (サブフォームのレコードソースであると思われる)テーブル[MST実査実績一覧]の定義内容(各フィールドの名前/データ型およびキー定義)

とりあえず、以上の点について明示されることをお奨めします。

参照先のテーブルについての情報も判らない状況では、rinrin さんが求められている「正しいソースコード」を提示することなど誰にもできないでしょう。

通報 ...