Visual Basic Tips


Jetデータベース(DAO)テーブルタイプを使ったテーブルへのアクセス


テーブルタイプのレコードセットを使ってJetデータベースのテーブルにアクセスします。テーブルタイプはキーを指定してアクセスするので動作が高速です。

Private Sub JetTblAccess()
  
Dim ws As Workspace
  
Dim db As Database
  
Dim rs As Recordset
  
Dim i As Integer
  
Dim strSql As String

  
'データベースオープン
  
Set ws = DBEngine.Workspaces(0)
  
Set db = ws.OpenDatabase(App.Path & "\work.mdb", False, False)

  
Set rs = db.OpenRecordset("新規テーブル", dbOpenTable)

  Debug.Print "レコード件数 = " & rs.RecordCount

  ws.BeginTrans
  rs.Index = "primarykey"
'インデックスを指定します。
  rs.Seek "=", "Key1", 1
'キー項目を指定します。
  
If rs.NoMatch Then
    rs.AddNew '追加
    rs("FieldText") = "Key1"
    rs("FieldInteger") = 1
    rs("FieldLong") = 10
    rs.Update
  
Else
    rs.Edit '修正
    rs("FieldText") = Now
'キーを更新できます。
    rs("FieldInteger") = 2
'キーを更新できます。
    rs("FieldLong") = 20
    rs.Update
  
End If
  ws.CommitTrans
'RollBackすると更新内容がキャンセルされます。

  
'こんな事もできます。
  ws.BeginTrans
  rs.Index = "primarykey"
'インデックスを指定します。
  rs.Seek ">=", "0", 0
'キー項目を指定します。
  
Do Until rs.EOF
    Debug.Print rs("FieldText")
    rs.MoveNext
  
Loop
  ws.CommitTrans
'RollBackすると更新内容がキャンセルされます。

  db.Close
  ws.Close
End Sub


DownLoad vbtips021.lzh 7KB (VB6.0)