参照設定でMicrosoft DAO 3.6 Object Libraryあたりを選択(バージョンは環境による)。
Access2000あたりはチェックが外れていた筈。要確認。
参照
- Dim db As Database
- Dim Rst As Recordset
- Set db = CurrentDb
- Set Rst = db.OpenRecordset("SELECT * FROM TB_WORK WHERE SEQNo<=2")
- Do Until Rst.EOF
- MsgBox (Rst("SEQNo"))
- Rst.MoveNext
- Loop
- Rst.Close: Set Rst = Nothing
- db.Close: Set db = Nothing
更新
- Set Rst = db.OpenRecordset("SELECT * FROM TB_WORK WHERE SEQNo<=2")
- Do Until Rst.EOF
- Rst.Edit
- Rst("DATA") = "更新"
- Rst.Update
- Rst.MoveNext
- Loop
- Rst.Close
追加
- Set Rst = db.OpenRecordset("SELECT * FROM TB_WORK WHERE SEQNo<=2")
- Rst.AddNew
- Rst("SEQNo") = 13
- Rst("DATA") = "新規"
- Rst.Update
- Rst.Close
ちなみにADOよりもDAOの方が処理が速いというウワサを聞くんですけどなんなんですかー?
ITProのすぐわかるデータベースの基礎の一覧表をみてみると、「データベース・エンジンとデータベース接続規格の種類」のJetについては
Accessが提供するデータベースエンジンで,MDBファイル(Microsoft Accessのデータ・ファイル)を操作するための機能を提供します。スタンドアロン型またはファイル共有型のデータベースで使われます。
とあり、「データ・オブジェクトの種類」の項目をみると、DAOについては
Jetを操作するためのデータ・オブジェクトです。
となっています。
DAO は Jet データベース エンジンを主なターゲットにしているので、それ以外のDBを視野にいれているのならADO…、ってところなのでしょうか。個人的には超ビミョー。
うーん、私がAccess単体での開発をする場合は、DAOの方がいいような気がしてきたぞ。VB6.0時代はADO利用していたものの、今更Access単体のツールをVB6に移植する、という可能性はないでしょう。移植するならVB.NET。そうするとADO.NET利用になるので、ADO利用のソースをそのままごっそり利用…、なんてことはしませんから、結局イチから書き直し。ADOで書くメリットがあまり思い浮かびません。
0 件のコメント:
コメントを投稿