Access ODBC--呼び出しが失敗 しま した タイムアウト

DB

Access「ODBC–呼び出しが失敗しました。」の対処方法

今日はAccessを使っていたハマった話。
ぼくはシステムの保守作業で、Accessをよく使います。

ある日、PostgreSQLのテーブルをODBC経由でリンクテーブルを作成して、Accessで開こうとすると下記のようなエラーが発生しました。

Access ODBC--呼び出しが失敗 しま した タイムアウト

ODBC--呼び出しが失敗しました。

Could not send Query(connection dead);
Could not send Query(connection dead)(#26)

結論を先にいうと、PostgreSQLのバージョンが古い場合の、ODBCドライバーの指定が悪かったのです。


エラーの詳細

「ODBC–呼び出しが失敗しました。」自体はよく出るメッセージで原因は多岐にわたります。このメッセージだけでの原因特定は難しいかもしれません。

今回の現象としては、

  • 接続はできている
  • 列情報は表示できる
  • レコード数も合ってる
  • 値がすべて「#Name?」となる

こんな感じです。

Access ODBC--呼び出しが失敗 しま した タイムアウト

値が表示できていないだけっぽいので、文字コード?そんな指定あったっけ?


原因と対処方法

Accessでリンクテーブルを作る際の設定を探してみましが、結局見つからず。
原因はODBCの設定でした。

上記エラーになった設定はコチラ↓

Access ODBC--呼び出しが失敗 しま した タイムアウト

「PostgreSQL ANSI」です。本体のPostgreSQLの文字コードがEUC-JPとなっているため、このドライバーを指定していました。

それを「PostgreSQL」で接続を作り直します。

Access ODBC--呼び出しが失敗 しま した タイムアウト

その後、Access側で再度、リンクテーブルを作成すると今度は無事に表示されました。

このドライバーは、PosgreSQLのバージョンとのマッピングがあるっぽくて、古いPostgreSQLには古いドライバーを使えってことなのでしょうか。ぼくの環境では下記のドライバー指定でうまくいきました。
(※PostgreSQLのエンコードはすべてEUC-JPです)

  • PostgreSQL 8.1.0 「PostgreSQL」
  • PostgreSQL 9.1.1 「PostgreSQL ANSI」
  • PostgreSQL 10.5 「PostgreSQL ANSI」

以上、備忘録でした。

 

NT4.0 SQL 6.5 に 展開している 約240フィールド、20万件のテーブルに対して ACCESS97や2000で単純なクエリーを実行した場合でも 「ODBC--呼び出しは失敗しました。」(Error.Number 3146) が発生しています。 DBの存在するパソコンのスペックはCEL-666MHz MEM:320MB ネットワークを介さずODBCリンクで自身からACCESSでクエリ ーを実行しても同様です。 DBの設定に問題があるのか、SQL6.5の限界なのかどちらでし ょうか。 また、このテーブルに対するデータのインポート作業でも同 様の現象が発生する為、データ分割をして行いました。 有効なインポート手段などもあれば紹介願います。

Access ODBC--呼び出しが失敗 しま した タイムアウト

  • 360-r
  • お礼率64% (9/14)

  • その他(データベース)
  • 回答数1
  • 閲覧数7729
  • ありがとう数2

関連するQ&A

  • ODBC接続で新しいレコードを追加できない

    OS XP SP3、ACCESS2003 DBはSQLserver2005express です SQL Server Management Studio Express を使って 新しいDB、テーブル、項目は作成できました。 また同じツールを使って手入力でデータを追記することもできます 質問はこのテーブルを ACCESSからODBC接続して 追加クエリーを実行したいのですが リンクしてテーブルを開いた時点で新規レコードが追加できない状態です。 サーバーの更新をしたく、少ないデータであれば手入力でも 大量のデータでは…ACCESSのクエリーを使いたいと思っております。 ODBC接続の設定が読み取り専用になっているのか そうであれば その設定はどこにあるのか 教えてもらえないでしょうか? 宜しくお願いいたします

    • ベストアンサー

    • SQL Server

  • ODBCによるエラー

    ODBCについての質問です VB.NET・AS400でODBC接続で開発しているのですが、以下のエラーが出てしまい困っています ************************************************************ ERROR [HY000] [IBM][iSeries Access ODBC ドライバー][DB2 UDB]SQL0666 - SQL QUERYが指定された時間制限または記憶制限を超えています。 ERROR [01000] [IBM][iSeries Access ODBC ドライバー]拡張動的 サポート が使用不能です。 ************************************************************ わかっている事は ・4つのDBを接続している場所でエラーが出ている ・昔は起きておらず、最近おき始めた(昔は接続数が少なかったが最近増えた) ・コントロールパネルのデータソース(ODBC)の「拡張動的サポートを使用可能にする」のチェックボックスは付いている ・上記エラーが出るPCと、エラーが出ずに正常に終わるPCがある です 検索しても対処法が出てこずに少々困っています 宜しくお願いします

    • 締切済み

    • その他(データベース)

  • ACCESSのODBCリンクテーブルに接続できなくなる

    ACCESSでSQLserverのテーブルとODBCリンクテーブルで連携したアプリケーションの開発を行っているのですが、ときどきテーブルとのリンクが切れてしまい、「実行時エラーです。リンクするテーブルが見つからないので、クエリを実行できませんでした。」というエラーが発生してしまいます。外的要因以外でACCESSではこのようなことはよく起こりうることなのでしょうか。またこの問題を回避できそうな方法をしている方いらっしゃいましたらよろしくお願いいたします。

    • ベストアンサー

    • その他(データベース)

  • SQLサーバーのテーブルに対してアクセスで更新クエリを行ないたい

    こんばんは。 ・vista ・アクセス2003 ・SQL Server 2005 です。 SQL ServerからテーブルをMDBへリンクしているのですが そのテーブルに対し、アクセス側で更新クエリを実行しようとすると 実行時エラー '3157': ODBC--リンク テーブル'テーブル名'での更新に失敗しました。 [Microsoft][ODBC SQL Server Driver]時間切れになりました。(#0) と言うエラーになり、更新クエリができません。 どうすればアクセスでSQLサーバーのテーブルに対して更新クエリを行えるのでしょうか? よろしくお願いします。

    • ベストアンサー

    • その他(データベース)

  • AccessからOrcleのODBCリンクテーブルへの挿入

    OS:XPpro Access:97,2000 Oracle:7 AccessからOracleのODBCリンクテーブルに対して追加クエリを実行すると、 ODBC--リンクテーブル'テーブル名'への挿入に失敗しました。 [Oracle][ODBC Oracle Driver][Oracle OCI]ORA-01461: can bind a LONG value only for insert into a LONG column.(#1461) というエラーが発生します。 メモ型のフィールド'A'をvarchar2(4000)のフィールド'B'に追加する部分で、LeftB(A,4000)としている部分がうまく行かないようようなので、LeftB(A,3000)と丸めてあげると通ります。 質問を纏めますと、 1.varchar2(4000)となっていても、4000Byteのデータを挿入することはできないのでしょうか。 2.発生しているエラーは、私の考えとは別の問題なのでしょうか。 ご回答よろしくお願いします。

    • ベストアンサー

    • その他(データベース)

  • ODBCタイムアウトエラー

    WindowsXP環境でACCESS2003を使用して、ODBCリンクでSQL SERVER2005に接続し、データーを取得後ローカルテーブルにデーターを置く処理を作って運用していたのですが、 Windows7でACCESS2003に移行し、システム内容は変更していないのですが Windows7になってリンクテーブルを開くと「ODBC タイムアウトエラー」が発生します。 WindowsXPのときはタイムアウトが出ずに1分くらいで結果が返ってきます。 多分、SQL SERVER ドライバーの影響と思うのですが分かりません。 どなたか教えてください。 Windows7 SQLSERVER(ODBC)ドライバー バージョン:6.01.7601.17514 windowsXP ドライバー バージョン:200.85.1132.00

    • 締切済み

    • SQL Server

  • ACCESSのODBC接続

    ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS10(PRO) ACCESS 2013 SQL SERVER EXPRESS 2016 ODBCを使用してACCESSからSQL SERVERに接続しています。 データ参照やINSERTは問題なく、データ削除で2万件ほどのデータを削除しようとすると、「実行時エラー'3146' ODBC---呼び出しが失敗しました」のメッセージが表示され止まってしまいます。 1000件ほどでしたら、削除は行えます。 ・パススルークエリでDELETE FROM ○○を実行 ・リンクテーブルをVBAからクエリを開き削除 ・SQL SERVERにストアドを作成して、ACCESSから実行する を試したのですが、結果は変わりありません。 また、LOOPで1000件づつ削除も試したのですが、6回(6000件)ほどで同じメッセージが表示されてしまいます。 ODBCでの接続がネックなのかと思っているのですが、解決策が見出せません。 ヒント等でも教えていただければ助かります。 よろしくお願いします。

    • 締切済み

    • SQL Server

  • ODBCの設定について

    ODBCの設定について質問です。 サーバー上にデータベース(Access)を作成し、使用するデータテーブルの登録も終わってクライアント側からデータベース・サーバーに接続して、実際にデータテーブルを活用したいのですが設定がうまくいきません>< 現状はコントロールパネル→データソース(ODBC)でユーザーデータソースの追加からMicrosoft Access Driverを追加し空のデータベース(Access)を開いてテーブルのリンクを実行し「ファイルの種類」から「ODBC Databases」で先ほど追加したデータソースを選択して実行しています。 すると 「ODBCを使用して、外部Microsoft Jetデータベースエンジンのテーブルや組み込み可能なISAMデータベースのテーブルのインポート、エクスポートまたはリンクを行うことはできません。」 とエラーがでます。 なにが原因でしょうか?

    • 締切済み

    • その他(データベース)

  • アクセス2003 「ODBC--リンク テーブル'テーブル1'での更新に失敗しました。」となる。

    Sub test() Public cn As New ADODB.Connection Public rs As New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.FullName rs.Open "Qクエリ", cn, adOpenStatic, adLockPessimistic rs("進捗") = "" rs.Update ←ここでエラー rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub のコードを実行すると アクセスが「応答なし」になり、その後 「ODBC--リンク テーブル'テーブル1'での更新に失敗しました。」となります。 Qクエリはテーブル1とテーブル2でできています。 毎回発生するエラーではなく、エラーにならない時もあります。 何か原因がわかる方いらっしゃいますか? ご教授よろしくお願い致します。

    • ベストアンサー

    • Visual Basic

ODBC接続のタイムアウトは?

"ODBCTimeout/ODBC タイムアウト" プロパティは、Access が待機する秒数を表す整数型の値です。 既定値は 60 秒です。 このプロパティが 0 に設定されている場合、タイムアウト エラーは発生しません。

Ora

原因 Oracle データソースの設定が正しく構成されていません。

ODBC どこ?

[スタート] ボタンをクリックし、 [コントロール パネル] をクリックします。 [コントロール パネル] ウィンドウの [管理ツール] をダブルクリックします。 [管理ツール] ウィンドウの [データ ソース (ODBC)] をダブルクリックします。

ODBC 何の略?

Open Database Connectivity (ODBC) は、関係データベース管理システム (RDBMS) にアクセスするための共通インタフェース (API)である。

Ora