VBからDAOでMDBにアクセスする


参照設定で「Microsoft Office X.X Access database engine Object Library」を追加
DAOはRecordset.Editでレコードロックされ、Recordset.Updateでロック解除される。DAOはロック関連がとても使いやすくて良い。Accessで開発をする場合はADOではなくDAOを使っておいた方が後々助かる事が多いな。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Dim database As DAO.database
Dim recordset As DAO.recordset
Dim sql As String
 
'Access外部からの場合
'Dim workspace As DAO.workspace
'Set workspace = DBEngine.Workspaces(0)
'Set database = workspace.OpenDatabase("C:\test.mdb")
 
'Access内部からの場合
Set database = CurrentDb
 
sql = "SELECT * FROM test;"
Set recordset = database.OpenRecordset(sql, dbOpenDynaset)
 
recordset.Edit
 
recordset.Fields("column").Value = "値"
recordset.Update
 
recordset.Close
database.Close
'workspace.Close
 
Set recordset = Nothing
Set database = Nothing
'Set workspace = Nothing