【ACCESS】サブフォームのレコードソースにデータを設定する

サブフォームの RecordSource や Recordset にテーブルのデータを設定する色々な方法です。

 

直接テーブル名を指定する場合

Me.サブフォーム名.Form.RecordSource = "T_テーブル名"

 

SQLを指定する場合

Me.サブフォーム名.Form.RecordSource = "SELECT * FROM T_テーブル名"

 

レコードセットを設定する場合 (DAOを使う簡単なサンプル)

Dim db As DAO.Database
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("SELECT * FROM テーブル名")
Set Me.サブフォーム名.Form.Recordset = rs

 

レコードセットを設定する場合 (ADODBを使う簡単なサンプル)

Dim cn As ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.Connection
Dim sql As String: sql = "SELECT * FROM テーブル名"
rs.Open sql, cn, adOpenStatic, adLockReadOnly
Set Me.サブフォーム名.Form.Recordset = rs

 

サブフォームのレコードソースをクリアする場合

Set Me.サブフォーム名.Form.Recordset = Nothing

 

変更したレコードソースの内容を画面に反映させたい場合

Me.サブフォーム名.Form.Requery

 

再描画系の処理

Me.Requery はフォームのレコードソースのテーブルを再読み込み
Me.Refresh はカレントレコードのみ再読み込み
Me.Repaint はフォーム上のコントロールの再描画

参考

Access VBA Refresh,Requery,Repaintについて
1.Access VBA の Refresh,Requery,Repaintはそれぞれどんな時に使うと効果があるのですか? 2.Private Sub cmdsyusei_Click() Me.Requery と関数の宣言の後にRequery,Refresh,RepaintをMeに対して行うのは どのような効果があるの...
タイトルとURLをコピーしました