2

私は何時間もこのエラーに悩まされています。イベントでは、このようopen_formに値を設定しますrecordset

Id = vId. しかし、1つのフォームでは、どのフィールドを更新しても、このエラーが発生しました。

This recordset is not updateable

この記事を読みましたhttp://support.microsoft.com/default.aspx?...kb;en-us;328828

私は多くのことを試しました。何も機能しません関係はありません。 を取得しました。フォーム navigation controlは ですdynasetprimary key autoincrementallow editsdata entry

また、このテーブルを編集する許可を得ました

以前にこのエラーに遭遇した人はいますか?

また、97 を 2010 に変換したところ、テーブルが にリンクされましたSQL server 2012。それが私のアプリではないため、以前に機能していたかどうかはわかりませんが、機能していたと思います

4

2 に答える 2

4

フォームのレコード ソースを調べます。ステートメントの場合SELECTは、SQL を新しい Access クエリの SQL ビューにコピーします。

次に、そのクエリをデータシート ビューで開きます。データシート ビューでデータを編集できない場合は、編集可能なレコード セットを返すようにクエリを修正する方法を検討する必要があります。

于 2012-09-14T16:46:44.497 に答える
2

これが誰かに役立つ場合、この問題には別の原因がありました。

ある SQL Server から別の SQL Server に変換したとき、ここの担当者はすべてのリンク テーブルを削除し、Access MDB ごとにそれらを再設定しました。

1 つのテーブル (実際には SQL ビューを指しており、問題の原因となるフォームを照会していたリンク テーブル) について、リンク テーブルの「インデックス」(IIRC) を指定するために列をチェックアウトしませんでした。列...ダイアログには、更新する場合はフィールドをチェックする必要があるというコメントが少しありましたが。幸いなことに、ビューは ID を選択していたので、それを試してみたところ、うまくいきました。(それがうまくいかなかった場合は、フォームによって更新されるテーブルである SQL テーブルのキーを形成するビュー列を指定するつもりでした。)

「更新フォームのすべてのテーブルにインデックスが必要」というコメントをフォーラムで見たことがあり、ビューが参照している SQL テーブルを確認しましたが、「テーブル」が「リンクテーブル」にアクセスします。リンクされたテーブルのインデックスを指定する唯一の場所は、リンクされたテーブルを再追加するときでした。

于 2014-04-09T20:49:09.870 に答える