• ベストアンサー

Accessの実行時エラーについて

度々恐れ入ります。 実行時エラー’2424’: 指定した式にMicrsoft Accessが見つけることができないフィールド、コントロール、プロパティ名が含まれています。 のメッセージが出てしまいます。 記述したのは オブジェクト=商品コード、プロシージャボックス=Exitの状態で Private Sub 商品コード_Exit(Cancel As Integer) 商品名 = DLookup("商品名", "商品", "商品コード='" & 商品コード & "'") 販売単価 = DLookup("販売単価", "商品", "商品コード='" & 商品コード & "'") 仕入単価 = DLookup("仕入単価", "商品", "商品コード='" & 商品コード & "'") End Sub 以上です。 商品名と商品コードは、商品テーブルと見積明細テーブルの両方に存在するフィールドで、商品名は商品テーブルの主キーにしています。 また、データ型はすべてテキストです。 またもや、テキストどおりの設定をしたはずなのに、何が原因なのか見当つかない状態です。

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

  • ベストアンサー
  • kmor
  • ベストアンサー率27% (225/825)
回答No.1

wakabonさん、毎度(^^)/ 各フィールドを[]で囲ったらいかがでしょう。 もし、抽出条件である商品コードがフォームのコントロールであれば forms![フォーム名]![商品コード]として。 Private Sub 商品コード_Exit(Cancel As Integer) 商品名 = DLookup("[商品名]", "商品", "[商品コード] ='" & Forms![xx]![商品コード] & "'") 販売単価 = DLookup("[販売単価]", "商品", "[商品コード] ='" & Forms![xx]![商品コード] & "'") 仕入単価 = DLookup("[仕入単価]", "商品", "[商品コード] ='" & Forms![xx]![商品コード] & "'") End Sub としては? Accessはさほど経験がないので、この程度しかお答えできません。 申し訳ないです。

参考URL:
http://support.microsoft.com/Intl/Japan/Support/Kblight/T005/9/13.asp
wakabon
質問者

お礼

早速にありがとうございます。 もう、頭が働きません。能力の限界ですので、一休みさせていただき、明日、確認させてもらいます。 ありがとうございました。

その他の回答 (1)

  • o23
  • ベストアンサー率36% (64/175)
回答No.2

Private Sub 商品コード_Exit(Cancel As Integer) 商品名 = DLookup("商品名", "商品", "商品コード='" & 商品コード & "'") End Sub はOKなのですね?で、あれば販売単価、仕入単価の分を順に増やしてどちらが (両方?)原因なのか特定しましょう。次にフォーム上のコントロール名を確認 してください。コントロール名が"販売単価"、"仕入単価"になっていますか? その他、ちょっと気になる点ですが、 >商品名は商品テーブルの主キーにしています 普通は商品コードを主キーにすると思いますが何か理由があるのでしょうか? >また、データ型はすべてテキストです 販売単価や仕入単価も?通常は通貨型を使います。 イベントのタイミングもフォーカス喪失時にやってしまうと、商品コードを 入力していない状況でフォーカスを喪失した時の処理が必要ですね。

wakabon
質問者

お礼

いまだ解決いたしませんが、この件に関しては、教本発行会社に問い合わせることにいたしました。 なお、アドバイスいただきました皆様のご厚情と情報に、深く感謝し、御礼申し上げます。 ・・・・ああ、アクセスが嫌いになりそうだ・・・