4

リンクされたSQLサーバー(2008)からのデータを含む分割フォームビューがあります。

レコードを更新するにはどうすればよいですか?

現在、テキスト ボックスで何も変更することはできません。これは、データがリンクされたテーブルから来ているためだと思いますか?!

更新するには、コマンド オブジェクトと coonn オブジェクトを作成し、通常の VB の方法でプログラムする必要がありますか?

もしそうなら、更新クエリを作成するときにリンクされたテーブルを参照するための構文は何ですか?

分割フォームにボタンをドロップすると、マクロの実行、コードの実行などのオプションが表示されますが、どれが適していますか?

どうもありがとう、

KS

4

2 に答える 2

3

まず、テーブルが読み取り専用でリンクされていないことを確認してください。

リモート テーブルにリンクすると、各行を一意に識別するための主キーまたはフィールドの別の組み合わせを識別できない場合、Access はそのテーブルを読み取り専用にします。常にではありませんが、主キーとして使用するフィールドが不明な場合は、どのフィールドを使用するかを尋ねる場合があります。

しかし、この問題は簡単に確認できます。リンクされたテーブルをデータシート ビューで直接開き、値を編集できるかどうかを確認します。そうでない場合は、テーブルを再リンクし、主キーについて Access に通知するオプションを探します。

リンクが読み取り専用でない場合は、フォームの [編集を許可] プロパティが [はい] に設定されていることを確認してください。

また、分割フォームではなく単純なフォームを試して、分割フォームに問題があるかどうかを判断することもできます。

于 2012-01-25T16:29:01.093 に答える
3

解決:

8 バイトの BigInt 型の主キーを使用してテーブルを登録しようとすると、Access は 4 バイトの Int しか処理できません。回避策は次のとおりです。

  1. SQL テーブルの制約 (bigint PK) を削除します
  2. ID シードを使用して新しい主キー (int) を作成する
  3. MS Access でテーブルをリンクする
  4. 新しい制約 (int PK) を削除し、MS SQL で以前の制約 (bigint PK) を再追加します

出来上がり!

于 2012-01-26T14:54:52.620 に答える