• ベストアンサー

ACCESS2000のサブフォームのデータをイベントプロージャで格納する方法

前にも同様のご質問をさせていただきましたが、解決しませんでしたので、もう一度質問させていただきます。 データ入力をACCESSで入力をしたいと考えております。 今回の場合にはサブフォームを使用するのですが、メインのフォーム側のボタンをクリックしただけで、メインのフォームに書かれたデータはメインのテーブルへ、サブフォームに書かれたデータはサブのテーブルへそれぞれデータを格納するには、[イベント プロシージャ]ではどのように記述すればよろしいのでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Access2000であればADO(データベースとアクセスする手段のひとつ)が使用できます。 メインのテーブル テーブル名:メインのテーブル フィールド1 フィールド2 サブのテーブル テーブル名:メインのテーブル フィールド1 フィールド2 メインのフォームには下記のテキストボックスとボタン テキスト1、テキスト2、「データの格納」ボタン サブフォームには下記のテキストボックス テキスト3、テキスト4 で、「データの格納」ボタンをクリックしたらデータが格納できるサンプルを作ってみました。 Private Sub データの格納_Click() On Error GoTo Err_データの格納_Click メインデータの格納 サブデータの格納 MsgBox ("保存完了") Exit_データの格納_Click: Exit Sub Err_データの格納_Click: MsgBox Err.Description Resume Exit_データの格納_Click End Sub Public Sub メインデータの格納() Dim rst As New ADODB.Recordset Dim rstName As String Set rst = New ADODB.Recordset rstName = "メインのテーブル" rst.Open rstName, CurrentProject.Connection, adOpenKeyset, adLockOptimistic rst.AddNew rst![フィールド1] = Forms![メインのフォーム].テキスト1 rst![フィールド2] = Forms![メインのフォーム].テキスト2 rst.Update rst.Close Set rst = Nothing End Sub Public Sub サブデータの格納() Dim rst As New ADODB.Recordset Dim rstName As String Set rst = New ADODB.Recordset rstName = "サブのテーブル" rst.Open rstName, CurrentProject.Connection, adOpenKeyset, adLockOptimistic rst.AddNew rst![フィールド1] = Forms![メインのフォーム]![サブフォーム]![テキスト3] rst![フィールド2] = Forms![メインのフォーム]![サブフォーム]![テキスト4] rst.Update rst.Close Set rst = Nothing End Sub ご参考になれば幸いです。m(__)m

Fujjy
質問者

お礼

ありがとうございました。試してみます。

その他の回答 (1)

回答No.1

前回の質問番号がわかれば、その回答に補足しやすいのですが・・・ あと、作成してるフォームとサブフォームは、それぞれレコードソースをそれぞれのテーブルにしているかどうか、それぞれのフォームのテキストボックスは、連結か非連結かによっても変わります。 作成してるフォームとサブフォームは、それぞれレコードソースをそれぞれのテーブルにしており、それぞれのフォームのテキストボックスは、それぞれのテーブルの各フィールドに連結しているのならば、 フォームとサブフォームを再表示(Requery)すると、確実に入力したデータは格納されます。 ボタンがフォームにあるので、フォームを再表示は、 Me.Requery です。 サブフォームの再表示は、 Forms![フォーム名]![サブフォーム名].Requery となります。 以上ご参考になれば幸いです。m(__)m

Fujjy
質問者

補足

ありがとうございます。 質問番号は「No.243452」です。 フォームもサブフォームも非連結です。 データを入力したその瞬間から、テーブルへ格納するのではなく、ボタンをクリックするまでテーブルへの格納は行いたくないのです。 また、サブフォームはデータシートです。 説明不足で申し訳ありませんでした。

関連するQ&A