[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/08/11(Wed) 12:51
投稿者名:マスオカリュウショウ
URL :
タイトル:
MDBのバージョンを見分ける方法
VB6のSP6でアクセス2000のMDBを使ってアプリを作成しています
このアプリは元々はVB5とアクセス97で作成されていた物を修正しているのですが。
元のアプリで使っていたアクセス97のMDBファイルを読み込む場合に
VBから自動的にアクセス2000の形式に変換して読み込みたいのですが
皆様に教えを請いたいことは二つです。
1,VBからMDBのバージョンを確認する方法
2.VBからMDBを新しいバージョンへ変更する

パソコンにはアクセスはインストールされていないという前提で可能でしょうか?
MDBのテーブルのレイアウトや型、桁数定義などは全て同じという前提です。

投稿時間:2004/08/11(Wed) 17:31
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: MDBのバージョンを見分ける方法
> 1,VBからMDBのバージョンを確認する方法

「どのバージョンのJet形式で作成されたものか」という意味であれば、
以下のようにして確認できます。

DAOを使う場合: DatabaseオブジェクトのVersionプロパティ
  Set DE = CreateObject("DAO.DBEngine.36")
  Set WS = DE.CreateWorkspace("#Default Workspace#", "Admin", "")
  Set DB = WS.OpenDatabase(  strMdbPath  )
  Debug.Print DB.Version

…これは、以下の値を返します。
   1.0  … Jet 1.0形式: Access 1.0
   1.1  … Jet 1.1形式: Access 1.1, VB3
   2.0  … Jet 2.0形式: Access 2.0
   2.5  … Jet 2.5形式: VB4/16bit
   3.0  … Jet 3.0形式: Access 95, VB4/32bit, Excel 95, VC++4.x
              または
           Jet 3.5形式: Access 97, DAO VB5, Excel 97, VC++5.0
   4.0  … Jet 4.0形式: Access 200x, VB6/SP3以降


ADOを使う場合: Jet OLEDB:Engine Type プロパティで判定します。
  Set Cn = CreateObject("ADODB.Connection")
  Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
  Cn.Open strMdbPath
  Debug.Print Cn.Properties("Jet OLEDB:Engine Type").Value

…これは、以下の定数値を返します。
  Const JET_ENGINETYPE_JET10 As Long = &H1&
  Const JET_ENGINETYPE_JET11 As Long = &H2&
  Const JET_ENGINETYPE_JET20 As Long = &H3&
  Const JET_ENGINETYPE_JET3X As Long = &H4&
  Const JET_ENGINETYPE_JET4X As Long = &H5&

ただしこれらは、「どのバージョンのAccessで作成されたのか」という情報を
返すわけではありませんので、その点は注意してください。
hhttp://support.microsoft.com/default.aspx?scid=kb;ja;171192


> 2.VBからMDBを新しいバージョンへ変更する
下記を参考にしてみてください。
.Net系掲示板での投稿ですが、元となる情報はVB6向けの物なので、参考にはなるかと。
hhttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=13180


--- 業務連絡: 管理人さま宛 ---
掲示板上部の『返信や〜〜お断りします』のリンク先のページで、
画像が表示されていないようです。(背景画像は表示されています)

<IMG src="VBHLP/Home.gif"> → <IMG src="../VBHLP/Home.gif">
<IMG src="VBRescue.gif">   → <IMG src="../VBRescue.gif">