スナップショットセットを使ってJetデータベースのテーブルにアクセスします。ダイナセットと同じようにMoveFirst,MoveLast,MovePrevious,FindFirst、FindLast、FindNext、FindPreviousが出来ます。
レコードの更新はこのサンプルでは行っていませんが、ダイナセットやテーブルセットと同様に行う事ができます。
スナップショットはAbsolutePositionでレコードの位置を指定して(番目)アクセスできるので、スクロールバーのスクロールイベントでレコードを移動させる時に使ったりします。
Private SubJetTblAccess()
Dim ws As Workspace
Dim db As Database
Dim rs As Recordset
Dim strSql As String
Debug.Print"----------------------------------"
'データベースオープン
Set ws= DBEngine.Workspaces(0)
Set db= ws.OpenDatabase(App.Path & "\work.mdb", False, False)
strSql = "Select * From 新規テーブル ORDER BY FieldLong"
Set rs= db.OpenRecordset(strSql, dbOpenDynaset)
If rs.EOFThen
Debug.Print"レコード件数 0"
Exit Sub
Else
rs.MoveLast'Movelast しないと Absolutepositionはできません
Debug.Print"レコード件数" & rs.RecordCount
rs.MoveFirst
End If
Do Until rs.EOF'レコードの列挙
Debug.Print"Field = " & rs("Fieldtext") & "|" & rs("FieldInteger") & "|" & rs("FieldLong")
rs.MoveNext
Loop
If rs.RecordCount <= 3Then
rs.AbsolutePosition = 3'3番目のレコードへ移動
Debug.Print "Field = " & rs("Fieldtext") & "|" & rs("FieldInteger") & "|" & rs("FieldLong")
End If
db.Close
ws.Close
End Sub
DownLoad vbtips022.lzh 7KB (VB6.0)