- ベストアンサー
AccessのVBにて、自動でODBC接続してリンクを自動で張るプログラムを作りたいのですが。。。
AccessのVBで、自動でODBC接続(Oracle)してリンクを張るプログラムを作りたいのですが、参考になるようなサイトを教えて頂けないでしょうか? 良いサイトがなかなか見つからなくて。 ※リンクテーブルの個数が多いので、別ファイルか何かでテーブルを指定したいと思っています。
- みんなの回答 (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
お礼
ありがとうございます、参考にさせていただきます。 今すぐ試せる環境に居ないので、結果後ほど。