• ベストアンサー

ACCESSとoracleのODBC接続

accessでoracleとODBC接続しています。access2003です。oracleは最新。 oracleのテーブルの項目数が255を超えています。 ACCESSの制限とか(?)で項目が350位あるので100項目くらいがリンクできません。VBAからselect文で(Select SYA_ID from IDOU)起動してもエラーになってしまいます。 何とか後ろのほうの項目を取得する方法は無いでしょうか? ご指導のほど宜しくお願い致します。

  • Oracle
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

昔、Accessを使っていた頃に悩んだ制限ですが、今もあるんですね。 ORACLE側で255列までのVIEWにして、それをリンクする事でしのぎました。 V_IDOU1 (主キー + 200カラムくらい) V_IDOU2 (主キー + 150カラムくらい) みたいな感じで。 350列全てを一括での取得が必要なのであれば無理ですが、いずれにせよ、その制限がある以上、VIEWなどで分割して分けて持ってくるしかないのでは?

khattori
質問者

お礼

ありがとうございました。 助かりました。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

Oracleの方でフィールド数を絞ったVIEWを作り、テーブルとして リンクする方法が簡単で、オススメです。 >VBAからselect文で(Select SYA_ID from IDOU)起動しても~ これはCurrentDbに対してOpenRecordsetを使ったからでは? ODBCの接続オブジェクトに対してOpenRecordsetを使ってみて ください。勿論、フィールド数は255以内にします。

khattori
質問者

お礼

ありがとうございました。 助かりました。(^~^)

関連するQ&A

  • ACCESSからのODBC接続について

    Windows2000サーバー上にあるアクセスファイル(別のOracle9サーバーにODBCリンクしている)をWindowsXpパソコンにコピーしましたが、「ODBC-xxxxへの接続が失敗しました」と表示されOracleデータを参照できません。 WindowsXpには、Oracleクライアントはインストール済み、DSNにもMicrosoft ODBC for Oracleを登録済みです。新規にODBCリンクすることは可能です。 エラーなく参照できるようにするにはどうすればいいでしょうか。

  • ACCESS ODBC 接続ダイアログ 非表示

    お世話になります。 当方、現在ACCESSにてORACLE データベース更新用のフォームを作成しています。 このフォーム内のリストボックスのデータソースにORACLEのリンクテーブルを使用しています。 通常、これを開いたときにODBC接続用のダイアログ画面が表示されると思うのですが、 このダイアログを表示しないようにするにはどうすればよいでしょうか? フォームOPEN時にVBA内でoo4oを使用してこのDBに対して適当なSELECT文を実行するように しても表示されてしまいます。 ご存知の方がいればご教示いただきたく存じます。 何卒よろしくお願いいたします。

  • odbc接続でaccessのテーブルにリンクを張るには

    オラクルのデータベースからodbc接続でaccessにテーブルをリンクしようとしているのですが、起動した1回だけオラクルのユーザとパスワードがでてきます。ユーザとパスワードをいれずにテーブルをひらくことができるのでしょうか。オラクルのodbcを使っています。odbcの登録にはパスワードを登録するところがありませんでした。

  • Accessから主キーの無いOracleテーブルにVBAで主キー設定付のODBC接続するには

    Oracle7--------------- Access97 Workgroup Server Release 7.3.2.2.1 TABLE_A----------------ODBC接続(リンクテーブル)     項目1 項目2 項目3 項目4 項目1~項目4は 空白レコードがあり 主KEYが張れない ******************************************************************** 主キーの作成出来ないオラクルテーブルがあります。 Access97からODBC接続を作成する時は (1)マニュアルであれば   対象テーブルに主キーが無ければ 任意の10項目を仮の主キーとして設定出来ますが (2)VBA(自動?)で リンク張ると Dim tab01 As TableDef  Dim db01 As Database  Dim strTABname As String strTABname = TABLE名 Set db01 = CurrentDb Set tab01 = db01.CreateTableDef(UserName & "_" & strTABname, dbAttachSavePWD) tab01.SourceTableName = UserName & "." & strTABname tab01.CONNECT = "ODBC;DSN=****;UID=" & UserName & ";PWD=" & Password & ";ConnectString=con;" db01.TableDefs.Append tab01 主キー設定の無いODBC接続が出来て   データの更新などが出来なくなります。 VBAでも仮の主キー設定付きのODBC接続は  出来ないでしょうか?

  • AccessにてODBC接続する

    Microsoft Accessについての質問です。 ご存知の方がおりましたらお助け願います。 ・状況 ORACELにODBCで接続しテーブルのリンクをする場合 接続するユーザの参照可能なテーブル数が多いと 一覧に一部のテーブルしか表示されない。 目的のテーブルが一覧に表示されない場合 リンクを作成することができない。 ・知りたいこと 一覧にすべてのテーブルを表示させることは可能でしょうか? すべてのテーブルを表示することが不可能な場合 一覧に表示させるテーブルを制限することは可能でしょうか? 上記二つが不可能な場合、VBA等で追加する方法がありましたら おしえてください。 ・回答についての補足 ORACLE側の設定を変更しない方法で回答願います。 ユーザの作成、シノニム等で制御等はNG 宜しくお願いします。

  • 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が      ドライバを認識しないため使用できませんでした。 何かわかりましたらご教授ください。 よろしくお願いします。

  • 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で違ってくる) よろしくお願いします。

  • ACCESS2000のODBC

    こんにちわ。 いまACCESS2000のMDBにODBC経由で, ORACLE10gのテーブルを参照したいと思い, [テーブルのリンク]-[ファイルの種類]-[ODBC]としたところ, ODBCソースを選択するダイアログが表示されません。 何か設定の不備があるのでしょうか? 教えてください。よろしくお願いします。

  • Oracle10gのテーブルをODBC経由でAccess2002にリンクテーブルをはりたいのに・・・

    Oracle10gのテーブルをODBC経由でAccess2002にリンクテーブルを作成しようとしました。 しかし、「テーブルのリンク」画面に複数あるはずのテーブルが1つしか表示されずリンクテーブルが作成できません。 Oracle9iのテーブルは正しく表示されます。 Access2000の環境下で同様の不具合が発生した人がおり、その人はOffice2000のサービスパック(1・2・3)をあてることで不具合が解消されたそうです。 同様にOfficeXPのサービスパック(1・2・3)をあてたのですが不具合は解消されませんでした。 誰かご存知の方はいらっしゃらないでしょうか。 よろしくお願いします。 動作環境  OS:Windows XP Pro  Oracle Client:10g  Access(Office):2002(XP)

  • [Oracle8i]ODBC経由でデータベースリンクに接続できますか?

    こんばんわ、ZIGENといいます。 はじめて、データベースリンクというものを 作成してみまして、Net8からは、無事接続し 対象のテーブルをSELECTできました。 しかし、ODBC経由で同じテーブルを参照しようと すると、以下のエラーになってしまいます。 --- SQLSTATE:S1000 Native Error Code:2041 Driver Message:[Oracle][ODBC][Ora]ORA-02041 クライアントデータベースはトランザクションを 開始しませんでした。 --- これはどういうことなのでしょうか? ODBC経由では接続できないということでしょうか? よろしくお願いします。