• ベストアンサー

AccessのVBにて、自動でODBC接続してリンクを自動で張るプログラムを作りたいのですが。。。

AccessのVBで、自動でODBC接続(Oracle)してリンクを張るプログラムを作りたいのですが、参考になるようなサイトを教えて頂けないでしょうか? 良いサイトがなかなか見つからなくて。 ※リンクテーブルの個数が多いので、別ファイルか何かでテーブルを指定したいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんな感じです。 Sub Link作成(p_strDSN名 As String, p_strユーザ As String, p_strパスワード As String)   Dim l_adoCnn  As Object  'ADODB.Connection   Dim l_adoRec  As Object  'ADODB.Recordset   Dim l_adoxCat  As Object  'ADOX.Catalog   Dim l_adoxTbl  As Object  'ADOX.Table   Dim l_strSQL  As String      Set l_adoCnn = CreateObject("ADODB.Connection")      l_adoCnn.Open "Provider=OraOLEDB.Oracle.1;Password=" & p_strパスワード & ";User ID=" & p_strユーザ & ";Data Source=" & p_strDSN名   l_strSQL = "SELECT * FROM USER_TABLES WHERE DROPPED = 'NO'"   Set l_adoRec = l_adoCnn.Execute(l_strSQL)      Set l_adoxCat = CreateObject("ADOX.Catalog")   l_adoxCat.ActiveConnection = Application.CurrentProject.Connection      Do Until l_adoRec.EOF     Set l_adoxTbl = CreateObject("ADOX.Table")          With l_adoxTbl       .ParentCatalog = l_adoxCat       .Name = l_adoRec("TABLE_NAME").Value       .Properties("Jet OLEDB:Create Link") = True       .Properties("Jet OLEDB:Cache Link Name/Password") = True       .Properties("Jet OLEDB:Link Provider String") = "ODBC;DSN=" & p_strDSN名 & ";UID=" & p_strユーザ & ";PWD=" & p_strパスワード       .Properties("Jet OLEDB:Remote Table Name") = UCase(p_strユーザ) & "." & l_adoxTbl.Name            End With          l_adoxCat.Tables.Append l_adoxTbl     l_adoRec.MoveNext   Loop End Sub

masa-it
質問者

お礼

ありがとうございます、参考にさせていただきます。 今すぐ試せる環境に居ないので、結果後ほど。

関連するQ&A