アクセス初心者ですが、宜しくお願い致します。
現在、納品伝票を作っており、
納品フォームに得意先情報、合計金額
サブフォームに売上げ商品と数量、単価、金額などを表示、
同じフォーム上にボタンを作って、マクロで印刷を行う設定にしています。
サブフォームには商品コードフィールドがあり、
別にある商品テーブルから DLookup関数を用いて
その商品コードの商品名と単価を自動入力させ、
サブフォーム上で合計金額を計算しています。
合わせて商品コードはコンボボックスになっており、
各得意先名により表示内容が変わるようにしてあります。
商品コードのフォーカス喪失時イベントには
Private Sub 商品コード_Exit(Cancel As Integer)
If Not IsNull(商品コード) Then
商品名 = DLookup("商品名", "取り扱い店名クエリ", "商品コード='" & 商品コード & "'")
単位 = DLookup("単位", "取り扱い店名クエリ", "商品コード='" & 商品コード & "'"
End If
End Sub
こんな感じで記述しているのですが、
サブフォーム上の商品コードにカーソルがある時に
フォーム上の印刷ボタンを押すと、
実行時エラー2424
「指定した式にアクセスが見つける事ができない
フィールド、コントロール、プロパティ名が含まれています」
となってしまいます。
例えば、サブフォームの1レコード目に入力をし終わり、
2レコード目の商品コードにカーソルが移った時点で印刷ボタンを押す。
2レコード分の入力を済ませたあと、エンターキーを押し続けて
(カーソルはカレントレコード内に戻る様にしています)、
再度商品コードにカーソルが合った時に印刷ボタンを押す。
などの場合です。
何とかこのエラーを回避する手立てはありませんでしょうか?
どうか宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
商品コードのフォーカス喪失時イベントではなく更新後処理に記述をしても同様でしょうか?
おかげざまでできました。
何でもかんでもフォーカス取得時や喪失時イベントに
割り当てればいいってものじゃないですよね。
今度からはもう少し考えてイベントの設定をする様にします。
ありがとうございました。
No.1
- 回答日時:
原因がちょっと特定できませんが、
>例えば、サブフォームの1レコード目に入力をし終わり、2レコード目の商品コードにカーソルが移った時点で印刷ボタンを押す。
については、ブランクのレコードができているのかも知れません。 もしそうなのであれば、
If Not IsNull(商品コード) Then のあとにもう一個
If (商品コード) <> "" をくわえるとかいろいろ方法はあると思います。
>2レコード分の入力を済ませたあと、エンターキーを押し続けて(カーソルはカレントレコード内に戻る様にしています)、再度商品コードにカーソルが合った時に印刷ボタンを押す。
こちらはちょっと見当がつきません。 debug してみると、最初のdlookupで止まるのだと思いますが、このときの商品コードの値は読み取れていますか?
余り関係ありませんが、私はDLookUpがあまり好きではないので、アクセスを使用する場合はクエリでデータを抽出するようにしています。
ご回答ありがとうございました。
ANo.2のO_cyanさんの方法でエラー回避はできました。
商品コードに何がしかのデータが入ってしまっていたのでしょうね。
ですが、ご指摘の様にブランクのレコードができてしまう様な時の対処に
If (商品コード) <> "" を使うのは勉強になりました。
今のフォームをもっとスマートに快適に使える様にする為に
役立てたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Accessの実行時エラーについて
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
コントロールの存在確認
Visual Basic(VBA)
-
5
手動または分散トランザクションモード…のエラー
Visual Basic(VBA)
-
6
フォームで検索 エラーの表示について
その他(データベース)
-
7
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
8
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
VBA 現在のセル番地を記憶、復...
-
1日に1人がこなせるプログラム...
-
Excel VBA素人です。VBAで図形...
-
access2003 クエリSQL文に...
-
access2021 VBA メソッドまたは...
-
【VB6】実行ファイルとした後、...
-
CString のGetAt で正しく文字...
-
C# コードビハインドについて
-
ホワイトノイズの生成コードに...
-
エクセルに見えない文字(JISX0...
-
sinカーブの表示のさせ方
-
JIPS-Eコードのコード表について
-
CheckBoxのコントロール配列に...
-
IF文、条件分岐の整理方法
-
Exel VBA 別ブックから該当デ...
-
Excel VBA 空白をセルを探して...
-
COBOLの文法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JANコードとPOSコードは同じ?
-
1日に1人がこなせるプログラム...
-
Nullの使い方が不正です。
-
access2003 クエリSQL文に...
-
JavaScriptの定数名が取り消し...
-
COBOLの文法
-
ACCESSユニオンクエリでORDER B...
-
VBAでファイルオープン後にコー...
-
ペンダントライトのコードの色...
-
Exel VBA 別ブックから該当デ...
-
変数名「cur」について
-
特定行の背景色を変えたいのですが
-
PreviewKeyDownイベントが2回...
-
access2021 VBA メソッドまたは...
-
Accessでの抽出で完全一致。
-
VBA リストボックス(複数条件...
-
オートフィルタで抽出結果に 罫...
-
access でエラーを回避するには?
-
1、Rstudioで回帰直線を求める...
おすすめ情報