- ベストアンサー
AccessのVBにて、自動でODBC接続してリンクを自動で張るプログラムを作りたいのですが。。。
AccessのVBで、自動でODBC接続(Oracle)してリンクを張るプログラムを作りたいのですが、参考になるようなサイトを教えて頂けないでしょうか? 良いサイトがなかなか見つからなくて。 ※リンクテーブルの個数が多いので、別ファイルか何かでテーブルを指定したいと思っています。
- masa-it
- お礼率70% (22/31)
- Visual Basic
- 回答数1
- ありがとう数2
- みんなの回答 (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
関連するQ&A
- ACCESSからのODBC接続について
Windows2000サーバー上にあるアクセスファイル(別のOracle9サーバーにODBCリンクしている)をWindowsXpパソコンにコピーしましたが、「ODBC-xxxxへの接続が失敗しました」と表示されOracleデータを参照できません。 WindowsXpには、Oracleクライアントはインストール済み、DSNにもMicrosoft ODBC for Oracleを登録済みです。新規にODBCリンクすることは可能です。 エラーなく参照できるようにするにはどうすればいいでしょうか。
- 締切済み
- Oracle
- ACCESSを使ってのODBC接続がうまくいかない
クライアント側のACCESSを使いODBC経由でMySQLへ接続しようとしたらうまく接続が出来ません。 現象はACCESSの、[新規作成] - [テーブルのリンク] - ファイルの種類を[ODBC Databases ()] - コンピュータデータソースにあるODBCを選択。 すると普通はここでテーブルの一覧が表示されるはずが、最初の画面に戻ってしまいます。 他のソフト(EXCELなど)でODBC接続を行ったところうまくいきます。なのでODBC自体の設定は問題ないと考えられます。 以前はうまく行っていたのですが、ACCESSのデータファイル(.mdb)を一度削除して新たに作り直したらうまくいかなくなりました。 この現象で何かわかる方いらっしゃいますか? よろしくお願いします。 MySQL 4.0 ODBC 3.51 ACCESS 2000
- 締切済み
- オフィス系ソフト
- AccessからOracleへのODBC接続
現在、Oracleで作成したデータベースに接続して 検索するソフトを、Accessで作成してあります。 Oracleに接続をするのに、 ODBCを使用しているのですが、 最初依頼があったときは「Oracle8」のときだったので、 「Oracle8」のみ接続可能なプログラムが組んであり、 「Oracle10g」の入っているPCでは接続できないという問題が発生しました。 そこで、「Oracle8」と「Oracle10g」とも接続出来るように プログラムを書き換えたのですが、 現在は「Oracle11g」が最新になっていると思うので、 ゆくゆくはそれに対応しなければならないなあ、と思っています。 そうすると、Oracleがバージョンアップするたびに、 ソフトのプログラムを書き換えなくてはならなくなり、 効率的ではないな…と思いまして… Oracleのバージョンが違っていても、 自分のPCのOracleのバージョンを自動認識して、 AccessからOracleへ接続する方法はあるのでしょうか? ちなみに現在は、TableDefsコレクションを使用して、 まず、Oracle8で繋ぎにいき、それでエラーが起これば Oracle10gで繋ぎにいく、という処理を行っています。 【参考コード】 dim db as object dim tdf as object set db = CurrentDb set tdf = TableDefs("テーブル名") tdf.Connect = "(※テーブルのプロパティの説明のところに入る文)" tbf.RefreshLink (※ここが8と10gで違ってくる) よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- odbc接続でaccessのテーブルにリンクを張るには
オラクルのデータベースからodbc接続でaccessにテーブルをリンクしようとしているのですが、起動した1回だけオラクルのユーザとパスワードがでてきます。ユーザとパスワードをいれずにテーブルをひらくことができるのでしょうか。オラクルのodbcを使っています。odbcの登録にはパスワードを登録するところがありませんでした。
- ベストアンサー
- Oracle
- Access 2003 ODBC リンクについて
Access2003でのORACLE ODBCリンクについてお伺いいたします。 ヒントだけでも頂ければと思います。 現在Windows2000サーバとWindowsXP端末がリンクされAccessデータベースを 入力・編集・検索するフォームが作成されています。(他の人が作成したもの) これらは、ネットワークケーブルでつながれ、データベースの同期も取られているようです。 先日、ネットワークケーブルを外し、サーバだけで検索しようとしたところリンクできないという エラーになりました。 サーバにデータベースのソースがあり、サーバ単独で稼働するものと考えていましたが、 端末とサーバがないとプログラムが稼働しないことがわかりました。 サーバだけで稼働するようにするには、 (1)テーブル・クエリ・フォームをエクスポートし、新たにを作成しインポートすれば可能でしょうか? (2)リンク先の変更などで可能でしょうか? (2)フォームのODBCリンクの部分をVisual Basicで変更しないと無理でしょうか? 以上よろしくお願いいたします。
- 締切済み
- インターネットビジネス
- access ODBCリンクテーブルの作り方
自分のPCで、あるaccessの業務システムを作成し、それを数人で共有してデータの入力をするようにする為に、ODBCリンクテーブルというものを作る必要があると思っています。 既存で業務的に違う別のシステムがあり、そこでODBCリンクテーブルというものは使用しています。(退職した前担当者が作成。) ODBCリンクテーブルというものは、どのうようにして作るのですか? (地球マークのテーブルです。)
- ベストアンサー
- オフィス系ソフト
- AccessにてODBC接続する
Microsoft Accessについての質問です。 ご存知の方がおりましたらお助け願います。 ・状況 ORACELにODBCで接続しテーブルのリンクをする場合 接続するユーザの参照可能なテーブル数が多いと 一覧に一部のテーブルしか表示されない。 目的のテーブルが一覧に表示されない場合 リンクを作成することができない。 ・知りたいこと 一覧にすべてのテーブルを表示させることは可能でしょうか? すべてのテーブルを表示することが不可能な場合 一覧に表示させるテーブルを制限することは可能でしょうか? 上記二つが不可能な場合、VBA等で追加する方法がありましたら おしえてください。 ・回答についての補足 ORACLE側の設定を変更しない方法で回答願います。 ユーザの作成、シノニム等で制御等はNG 宜しくお願いします。
- 締切済み
- Oracle
- ACCESSとoracleのODBC接続
accessでoracleとODBC接続しています。access2003です。oracleは最新。 oracleのテーブルの項目数が255を超えています。 ACCESSの制限とか(?)で項目が350位あるので100項目くらいがリンクできません。VBAからselect文で(Select SYA_ID from IDOU)起動してもエラーになってしまいます。 何とか後ろのほうの項目を取得する方法は無いでしょうか? ご指導のほど宜しくお願い致します。
- ベストアンサー
- Oracle
- ACCESS2000のODBC
こんにちわ。 いまACCESS2000のMDBにODBC経由で, ORACLE10gのテーブルを参照したいと思い, [テーブルのリンク]-[ファイルの種類]-[ODBC]としたところ, ODBCソースを選択するダイアログが表示されません。 何か設定の不備があるのでしょうか? 教えてください。よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- ACCESSからODBC接続でORA-12504
Access上でオラクルのテーブルのリンクを設定しようと していますが、「ORA-12504」のエラーが表示されてしまい 接続できず、困っています。 【エラー詳細】 ODBC-呼び出しが失敗しました。 [Oracle][ODBC][Ora]ORA-12154 TNS~ (#12154)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(♯0)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(#0) なお、SQLPlusで接続ができていますし、ODBCアドミニストレータ の接続テストも成功します。 Accessで問題があるのでしょうか? 【環境】 OS:WinXP x64 Access:003 Oracle:サーバ 10g(10.2.0.1) for 64-bit :クライアント 10g(10.1.0.2) for 32-bit ※64-bitのオラクルクライアントはAccessが ドライバを認識しないため使用できませんでした。 何かわかりましたらご教授ください。 よろしくお願いします。
- 締切済み
- Oracle
お礼
ありがとうございます、参考にさせていただきます。 今すぐ試せる環境に居ないので、結果後ほど。