1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Access 2000/2003 +VB6.0 /VB5.0 ODBCDirect 幻の技術

Posted at

###歴史の谷間にみつかったODBCDirect
マイクロソフトのデータアクセス技術 の変遷をたどる PDF 断片
2010年に廃刊してしまったDB Magazine の2004年1月の記事

DAO 1.0は1993年に発売されたVB3.0(日本未発売)に搭載され「Microsoft Access1.1(以下、Access)」のJetエンジンを利用するインタフェースとして登場。
当時のJetエンジンにはパフォーマンスに難があったが、2.0で大きく改善。
1995年12月に発売された日本語版のVB4.0ではDaoのVersionはAccess95と同じDao3.0 Jetエンジン改良
VB5.0ではAccess97と同じDao3.5。数年前までVB5.0とAccess97の組み合わせで開発
現在はAccess2000とDao3.6とVB6.0で開発される
VB5.0 Dao3.5 Jetエンジンを介さずに直接ODBC対応データベースへ接続することが可能に

ODBCDirect
'This Sample Only VB 5.0 / VB 6.0
Dim ws as Dao.WorkSpace
Set ws=Dbengine.Workspaces(0)
Dim db as Dao.databes
Set db = ws.OpenDatabase("C:\Northsind.mdb")
Dim rs as Dao.Recordset
set rs = db.OpenRecordset("Select * From 社員")
Do Until rs.Eof
List1.AddItem rs("氏名")
rs.MoveNext
Loop

 というサンプルがあった。
 これを利用すると古いMDBファイルと接続できるのかと思ったが、残念ながらそんなことはなかった。現在では使えないサンプルだからだ。
 とはいえ、見つかった以上はまとめておくと、ODBCDIrectはAccee2000 Access2003 VB6.0またはVB5.0でできた技であり、Access2007以降はサポートされていない。
このため、これを利用したAccess97/95 Access2.0への接続はできない。

現在は参考リンクのAccess2010でのODBCDirectの代替案をみて書き換える必要がある。そうしないと実行時エラーが発生する。
しかし、このODBCDirectは6年くらいしか存在しなかったという短命な技術だがセキュリティの問題でもあったのだろうか。

###この記事のもう一つの重要な点
Access1.1は日本で未発売だったということ。次の記事で重要になる。

###参考リンク

Access 2010 での ODBCDirect サポートについて
【Access】DAOのODBCダイレクト接続を、泣く泣くADO接続に書き換える。
Access2010でのODBCDIRECTの代替案

Access2013はAccessProject(ADP)がサポートされないのでほぼODBCを使うことになると思います。しかしAccess2007以降ODBCDirectは使えません。
しかしAccess2007以降ODBCDIRECTは使えず
実行時エラー3847
ODBCDIRECTはサポートされません。DAOの代わりにADOを使用するには、コードを記述しなおしてください。
Microsoft Access 2010 を使用したデータ プログラミング

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?