2

MS SQL Server 2000 テーブルにリンクされたフォームにレコードを追加しようとすると、MS Access ADP で次のエラーが発生します。

実行時エラー '31004':

(AutoNumber) フィールドの値は、保存する前に取得することはできません。

このアクションを実行する前に、(オートナンバー) フィールドを含むレコードを保存してください。注:取得されたのは、実際にはエラーのスペルが間違っています。

これが何を意味するか知っている人はいますか?

Web 検索を行ったところ、専門家のみがアクセスできる特定のサイトでしか答えを見つけることができませんでした。

4

3 に答える 3

2

まず第一に、エキスパート交換を見る場合は、FireFoxでそれを行うと、ページの下部にブロックされていない回答が表示されます。

次に、マスターフォームの自動番号/キーフィールドを使用しているサブフォームがそのフォームにありますか?メインフォームを保存する前に、そのサブフォームにあるデータを保存する(つまり、独自のキーを持つ)必要がありますか?あなたはAとBの行き詰まりに陥り、お互いを最初に救う必要があるかもしれません。

それ以外は、保存するときに何らかの方法でその自動番号フィールドにアクセスしている必要があります。私が提案できる最善の方法は、コードを1行ずつステップ実行することです。

于 2008-09-15T14:53:17.747 に答える
0

データをどのように管理しているか、正確に何を行っているかを示すために、数行のコードを追加する必要があります。しかし、レコードセットの更新に関連する問題が疑われます。autonumber 値がいつ作成されたかを特定できますか? フォームのコントロールで使用できますか? この値を表示するコントロールを追加して、新しいレコードを追加するときにどのように生成されるかを確認できますか? 基になるレコードセットは適切に更新されていますか? いくつかのフォームイベントに me.recordset.update のようなものを追加できますか: OnCurrent を試してみます...

于 2008-09-16T21:30:14.193 に答える
0

レコードを保存する前に、Identity フィールドの値を変数などに代入しようとしていますか?

なんらかの理由で、アプリはレコードが保存される前に ID フィールドの値を読み取ろうとしています。これにより ID フィールドが生成されます。つまり、行が保存されるまで Autonumber フィールドの値は存在しません。

より詳細に解決するには、より多くのコードを確認するか、このエラーに至るまでの手順について詳しく知る必要があると思います。

于 2008-09-12T21:31:40.480 に答える