Skip to content

Instantly share code, notes, and snippets.

@yu-tang
Created May 3, 2011 19:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yu-tang/953997 to your computer and use it in GitHub Desktop.
Save yu-tang/953997 to your computer and use it in GitHub Desktop.
ADODB のインメモリ レコードセットを Access 非連結フォームのレコードソースにセットする
' ADODB のインメモリ レコードセットを Access 非連結フォームのレコードソースに
' セットするサンプル コード。
' 下記をコピペでテストする場合は、運送会社テーブルから表形式フォームをオート
' フォームで作成して、フォームのレコードソース プロパティを削除すると多少楽。
Option Compare Database
Option Explicit
Private Sub Form_Load()
' インメモリ レコードセットをフォームのレコードソースにセットします。
Set Me.Recordset = GetInMemoryRecordset
End Sub
' インメモリ レコードセットを取得します。
Private Function GetInMemoryRecordset() As ADODB.Recordset
Dim cols As Variant
cols = Array("運送コード", "運送会社", "電話番号")
Set GetInMemoryRecordset = New ADODB.Recordset
With GetInMemoryRecordset
.LockType = adLockOptimistic ' ここがポイント!
' 動的にフィールドを作成
With .Fields
.Append cols(0), adInteger
.Append cols(1), adVarWChar, 255
.Append cols(2), adVarWChar, 255
End With
' レコードセットをオープン
.Open
' 初期データを作成
' -- ここではテスト用に 3 レコードを追加
.AddNew cols, Array(1, "アカネコ", "(03) 3955-98xx")
.AddNew cols, Array(2, "トマト", "(03) 3681-31xx")
.AddNew cols, Array(3, "ペンギン", "(03) 3566-99xx")
.Update
' カーソルを先頭に移動
.MoveFirst
End With
End Function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment