参照設定で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 件のコメント:
コメントを投稿