• ベストアンサー
  • 暇なときにでも

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

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

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.1
  • keikan
  • ベストアンサー率42% (75/176)

外的要因で通信に障害があるのであればAccessのツールオプションの「詳細」のOLE/DDEのタイムアウト時間を延ばしてみるとか、ODBCの再表示間隔、更新の間隔などをいじってみる。 または、エラー発生時にOnErrGOTOで例外処理してちょっと時間あけて再接続を試みるなどしてみてはどうか? また、以前のAccessのバージョンでは複数の外部データベースにリンクできないというのもあったように思う。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

返答が大変遅くなってしまい、申し訳ありませんでした。 やはりリンクの際にどうしても接続が切れてしまうため、Access内にテーブルを持つように設計を変更しました。

関連するQ&A

  • 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.発生しているエラーは、私の考えとは別の問題なのでしょうか。 ご回答よろしくお願いします。

  • Accessでのリンクテーブルについて

    Access2007でSQLServer2005のテーブルのリンクを張っています。 このリンクテーブル内のnvarchar型のフィールドをクエリでint型へ変換したいのですが、CInt(対象フィールド)としてもオーバーフローが発生していまいます。 nvarchar型のフィールドの内容は8桁の数字で、SQLServer側では変換できています。 Accessではnvarchar型の変換はできないのでしょうか? 変換したビューを引っ張ることも考えましたが、そのクエリ以外では文字列として扱いたいので、できればクエリ内で変換したいのですが・・・。 どなたか解決方法をご存じでしたら教えてください。 お願いします。

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

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

  • access ODBCリンクテーブルの作り方

     自分のPCで、あるaccessの業務システムを作成し、それを数人で共有してデータの入力をするようにする為に、ODBCリンクテーブルというものを作る必要があると思っています。  既存で業務的に違う別のシステムがあり、そこでODBCリンクテーブルというものは使用しています。(退職した前担当者が作成。)  ODBCリンクテーブルというものは、どのうようにして作るのですか?  (地球マークのテーブルです。)

  • Accessのリンクテーブルについて

    Access2000を使用しているのですが、SQLServerのDBをリンクしなければいけないのですが、ODBCを使用せずにリンクさせる方法はあるのでしょうか? またはモジュールでコードを記述してリンクテーブルを作成する方法でもかまわないのですが・・・。 作成したAccessを配布したPCにODBCを設定するのが面倒なのですが・・・。 なにかいい方法があるのか教えていただきたいです。

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

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

  • アクセス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でできています。 毎回発生するエラーではなく、エラーにならない時もあります。 何か原因がわかる方いらっしゃいますか? ご教授よろしくお願い致します。

  • アクセステーブル、リンクとローカルで違いはある?

    Access2003からSQLServerにリンクテーブルを張ったアプリケーションの作成をしています。 本番リリース時にはすべてのテーブルがリンクテーブルになる予定ですが 開発時にはローカルテーブルで開発をしたいと考えています。 理由は、DBにテスト用のゴミデータを追加したくないことと、 セキュリティの関係で接続出来るマシンが限られるためです。 現状の開発方法としては、 テーブルに一度リンクを張り、テーブル追加クエリでローカルにテーブル構造とデータを退避。 手動で主キーを定義して、そのテーブルを実体をみなして開発をしています。 SQLレベルではローカルテーブルもリンクテーブルも同等の扱いだと思っているのですが 何か制限事項などがあるのであれば教えていただきたいです。 なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 追記。 クエリからクエリを参照して、さらにSQL内でサブクエリも記述しています。 その為、度々「クエリが複雑過ぎます。」みたいなメッセージが表示されています。 複雑というより無駄に長いだけだったりするのですが、 ローカルテーブルなら発行出来たのに、 リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。

  • Accessリンクするテーブルが見つからないエラー

    Access2007で開発しています。 SQLServerにDBを作成し、テーブルをリンクしているのですが、検索時に「リンクするテーブルが見つからないので、クエリを実行できませんでした」というメッセージが起きます。 以下の同じVBAを使用し、検索するテーブルも同じなのに、ある特定フォームからそのVBAを実行した場合のみ、このエラーになります。 エラー箇所は(1)の部分です。 以前は別のAccessで作成したテーブルをリンクしていましたが、SQLServerに変えたとたんにこのエラーが起きます。 DB接続方法等、変更すべき点があるのでしょうか? 対処方法を教えて下さい。 'カレントデータベースを開く Set cnCrrDB = CurrentProject.Connection 'レコードセットを開く     SQLSTR = "select xxxName from mTest1 where xxxNo = 5" (1) rsTable.Open SQLSTR, cnCrrDB, adOpenStatic 'レコード件数とフィールド数を取得する ReCnt = rsTable.RecordCount FiCnt = rsTable.Fields.Count

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

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