1

リンクされたテーブルの束を含んでいた mdb があります。これらのリンクは、別の Access mdb 内のテーブルを指しています。

制御された移行の一環として、すべてのリンク テーブルを反復処理し、接続文字列を ODBC に更新してから、テーブル定義で RefreshLink を呼び出すことにより、これらのリンク テーブルを代わりに SQL サーバー インスタンスを指すように変更しています。

しかし、ODBC リンクを含む新しいデータベースを開くと、Access がクラッシュします。さらに興味深いことに、特定のリンク テーブルを 1 つ (ADO 経由で) 削除すると、データベースを開くことができます。さらに興味深いことに、Access GUI を使用してそのリンク テーブルを追加し直してもクラッシュしないため、SQL Server のテーブル自体には問題がないことがわかります。

そこで、この特定のリンク テーブルが原因で Access がクラッシュする原因を突き止める必要があります。クラッシュに関する情報を得ることができますか? どこから調査を開始できますか?

編集: リンクを更新するか、DSN を使用してまたは DSN を使用せずにテーブルを削除して再作成するなど、リンク テーブルを更新するさまざまな方法を試しました。開くときに mdb がクラッシュするのは同じテーブルであるたびに。

編集 2: 悲しいことに、クラッシュは実際には何らかの形でソース管理にかかっているようです。SCCAPI プロバイダーを無効にすると、クラッシュは発生しません。これを調べる方法はまだわかりません。

4

3 に答える 3

0

テーブルをリンクするための戦略は結果を変更しませんでした。同じテーブルが原因で、同じデータベースで同じクラッシュが発生します。

ただし、ソースコード管理を無効にすると問題が修正され、その理由や調査方法は誰も提案していません。そのため、「SCCを無効にする」を回答として受け入れて質問を締めくくります。

于 2010-01-22T16:40:06.657 に答える
0

リンクを削除して、まったく新しいリンクを作成します。ODBC リンクは、ODBC リンクとして開始された場合でも確実に更新されません。

于 2010-01-15T19:13:06.573 に答える
0

私は Access データベースで MySQL リンク テーブルをよく使用しますが、ODBC ではなく ADO 接続を使用して書き込みを行います。

ただし、最近、新しいプロジェクトで新しいデータベースにリンクしました-WebバックエンドMySQL-リンクは問題ありませんでした-テスト接続は問題ありませんでした-しかし、1つの特定のテーブルがリンクされましたが、それを開いてみてください-MS Accessは即座に消去されました-私が見たことのないものODBC リンクを使用しているデータベースのいずれかで。ODBC リンクの優れた点は、ADO ではなく DAO を使用し、テーブルをローカル テーブルとして扱うことができることです。この特定のテーブルの ADO でさえエラーになることはありませんが、役立つエラー コードは表示されませんでした。

問題を解決 - このテーブルには JSON 型の 2 つのフィールド (実際には長いテキストのみ) がありましたが、最新のドライバー 8.0 を使用しても Access が強制終了されました。

幸いなことに、Web 開発者と連絡を取り合っています。これは特注のデータベースでしたが、JSON フィールドは使用されていませんでした。そのため、彼はそれらをロング テキストに変換しました。ほら、MS Access は再び完全に満足しました。

私が解決していない厄介なことは、リンクされたテーブルがコンテンツを #DELETED# として表示することですが、データを入力するには F5 で更新する必要がありますが、ドライバー 8.0 ではこれは機能しません。

ただし、ADO は満足しており、ローカル テーブルとしてのコピー アンド ペースト リンクは完全に機能します。

于 2020-11-05T00:04:59.650 に答える