Microsoft Access 掲示板

表形式フォーム同士の一括挿入の方法を教えてください。 / 4

5 コメント
views
4 フォロー
4
hatena 2019/11/13 (水) 20:57:06 修正

どのように複雑なのでしょうか。
フォーム2のデータをフォーム1にそのまま追加するだけではないのですか。

データを追加するだけなら、追加クエリが一番簡単です。追加クエリをコードで実行して再クエリです。
コード例

Private Sub コマンド8_Click()
    CurrentDb.Execute "追加クエリ"
    Forms![フォーム1].SetFocus
    Forms![フォーム1].Requery
End Sub

追加クエリを作成したくないなら、コードにSQLを直接記述することも可能です。

Private Sub コマンド8_Click()
    CurrentDb.Execute "INSERT INTO テーブル1 SELECT [テーブル2].* FROM テーブル2;"
    Forms![フォーム1].SetFocus
    Forms![フォーム1].Requery
End Sub

一応、追加クエリ(SQL)を使わない別案も出しておきます。

Private Sub コマンド8_Click()
    Dim MeRs As DAO.Recordset
    Set MeRs = Me.Recordset
    If MeRs.RecordCount = 0 Then
        MsgBox "データがありません。"
        Exit Sub
    End If
        
    Forms![フォーム1].SetFocus
    Dim TargetRs As DAO.Recordset
    Set TargetRs = Forms![フォーム1].Recordset

    MeRs.MoveFirst
    Do Until MeRs.EOF
        TargetRs.AddNew
        TargetRs!項目 = MeRs!項目
        TargetRs!金額 = MeRs!金額
        TargetRs.Update
        MeRs.MoveNext
    Loop

End Sub

追加クエリの方がシンプルですし、処理も高速です。

通報 ...