外部から Access へアクセスする

  Access.Application



Excel や IE にも同様のインターフェイスがありますが、いろいろと便利なものがあります。基本的に、Access の VB 内でApplication. で出現するプロパティ・メソツド・コレクションが扱えます。

以下は、Visual Basic 6.0 のコードです

  
Dim ac

Private Sub Command1_Click()
   
    Set ac = CreateObject("Access.Application")
    
    ac.OpenCurrentDatabase ("C:\MDB\db1.mdb")
    
    With ac.CurrentDb
        
        For i = 0 To .TableDefs.Count - 1
    
            MsgBox .TableDefs(i).Connect & "/" & _
                    .TableDefs(i).Name & "/" & _
                    .TableDefs(i).SourceTableName
            
        Next
    
    End With

End Sub

Private Sub Command2_Click()

    ac.CloseCurrentDatabase
    Set ac = Nothing

End Sub
  

TableDefs コレクションと、TableDef オブジェクトは DAO です



  リンク先変更



C:\MDB\db1.mdb は、Access 2000 で、C:\MDB\link.MDB と C:\MDB\link2.MDB という Access 97 の MDB があります。Access 97 の中はどちらも同じで、TEST_TABLE という表があります

Access 2000 から、その C:\MDB\link.MDB 内の TEST_TABLE へのリンクを作成して、MyTABLE という名前で登録します。そして、以下のコードを実行します

  
Dim ac, newDef

Private Sub Command1_Click()

    Set ac = CreateObject("Access.Application")
   
    ac.OpenCurrentDatabase ("C:\MDB\db1.mdb")
    ac.CurrentDb.TableDefs.Delete ("MyTABLE")
    
    Set newDef = ac.CurrentDb.CreateTableDef("TEST")
    
    newDef.Connect = ";DATABASE=C:\MDB\link2.MDB"
    newDef.SourceTableName = "TEST_TABLE"
    newDef.Name = "MyTABLE"
    ac.CurrentDb.TableDefs.Append (newDef)

    ac.CloseCurrentDatabase
    Set ac = Nothing

End Sub
  



  フォームのプロパティ

フォームは、Open しないとプロパティを取得できないので、デザインビューで Open してから読み出して、処理が済んだらClose します(起動時の設定で、データベースウィンドウを表示するようにして下さい)

  
Const acDesign = 1
Const acForm = 2

Set ac = CreateObject("Access.Application")

ac.OpenCurrentDatabase( document.all("TargetMDB").value )

For i = 0 To ac.CurrentProject.AllForms.Count - 1

	frmName = ac.CurrentProject.AllForms(i).Name

	If Not ac.CurrentProject.AllForms(i).IsLoaded Then
		ac.DoCmd.OpenForm frmName, acDesign
	End If

	Set Prop = ac.Forms(frmName).Properties("Modal")

Prop.Value がプロパティ値

	If ac.CurrentProject.AllForms(i).IsLoaded Then
		ac.DoCmd.Close acForm, frmName
	End If

Next

ac.CloseCurrentDatabase
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ