Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2170 / 2272 ツリー ←次へ | 前へ→

【3494】エラーメッセージの表示 クロヒョウ 04/9/13(月) 14:59 質問[未読]
【3496】Re:エラーメッセージの表示 こもれび 04/9/13(月) 16:38 発言[未読]
【3497】Re:エラーメッセージの表示 クロヒョウ 04/9/13(月) 16:47 質問[未読]
【3498】Re:エラーメッセージの表示 こもれび 04/9/13(月) 18:36 発言[未読]
【3524】Re:エラーメッセージの表示 クロヒョウ 04/9/16(木) 10:14 質問[未読]
【3527】Re:エラーメッセージの表示 こもれび 04/9/16(木) 11:47 発言[未読]
【3615】遅くなって申し訳ありません クロヒョウ 04/10/1(金) 11:52 質問[未読]
【3616】Re:遅くなって申し訳ありません クロ 04/10/1(金) 14:48 回答[未読]

【3494】エラーメッセージの表示
質問  クロヒョウ  - 04/9/13(月) 14:59 -

引用なし
パスワード
   アクセス97を使用しています。

会社で、請求書の作成を行っています。
金額が未入力のときにエラーメッセージを表示する設定をしたいのですが、
どこにイベントをかけたらいいのかすらわかりません。

テーブルに基本データの入力をしています。
請求書の作成にかかる内容は、商品名称、納品日、金額です。
商品と金額が必ずしも繋がっていないので、金額は全て入力しなければなりません。
このテーブルから請求するものをクエリーを使って抽出させ、
レポートを作成しています。

普段は、入力フォームでデータを入力し、レポートをプレビューで開けて印刷する、
という作業しかしておりません。

どなたか、アドバイスをいただけないでしょうか。
よろしくお願いします。

【3496】Re:エラーメッセージの表示
発言  こもれび  - 04/9/13(月) 16:38 -

引用なし
パスワード
   テーブルとデータ入力用のフォームは連結していますか?
それとも連結していませんか?

【3497】Re:エラーメッセージの表示
質問  クロヒョウ  - 04/9/13(月) 16:47 -

引用なし
パスワード
   こもれび さんへ
>テーブルとデータ入力用のフォームは連結していますか?
>それとも連結していませんか?

連結していると思います。
フォームに入力したものが、テーブルをあけると入力されています。
これって、連結しているということなんですよね??

【3498】Re:エラーメッセージの表示
発言  こもれび  - 04/9/13(月) 18:36 -

引用なし
パスワード
   こもれびです

>フォームに入力したものが、テーブルをあけると入力されています。
>これって、連結しているということなんですよね??
その動作ですとどうやら連結ですね。

連結フォームの場合、レコードを移動する瞬間にテーブルに書き込まれますので
配置された幾つかのテキストボックスの編集を行っている時のイベントをとらえる
のが無難な手法ではないかと私は考えます。

一度に入力する件数は1件のみでしょうか、それとも複数件あるのでしょうか。
また、1件入力した後にコマンドボタンか何かをクリックするようにされていますか?

先の投稿を読みますと、1件の入力で金額の入力が一番最後のように思えたのですが
そのあたりはいかがでしょうか。

【3524】Re:エラーメッセージの表示
質問  クロヒョウ  - 04/9/16(木) 10:14 -

引用なし
パスワード
   こもれび 様
 レスが遅くなり申し訳ありません。
 急に仕事が休みになってしまいました。

一度に入力する件数は1件のみの場合もあり、そうでない場合もあります。
入力したあろは、そのまま閉じてしまうだけで特に何かボタンをクリックする
ような仕組みにはなっていません。
また、入力は何度かにわけて(顧客名→受注日→下請けへの発注日→・・・・)
行います。その一番最後に金額の入力があるのですが、顧客毎に入力をするので、
必ずしも月末日に入力するとはかぎりません。

また、各項目によって入力者が違います。

実は、アクセスを始めて、まだ1ヶ月あまりという超初心者です。
お手数かけますが、よろしくお願いします。

【3527】Re:エラーメッセージの表示
発言  こもれび  - 04/9/16(木) 11:47 -

引用なし
パスワード
   こもれびです

▼クロヒョウ さん:
>行います。その一番最後に金額の入力があるのですが、顧客毎に入力をするので、
>必ずしも月末日に入力するとはかぎりません。

一番最後に金額の入力がある…ということは金額のテキストボックスが空欄のまま
「新規レコード」の入力に移動してしまう確率が高い上、このままではチェック
をかけようにもかけにくい状態ですね。

○ 対策案

現状           対策
-------------------------------------------
フォームを閉じると    フォームの「閉じる
テキストボックスが    ボタン」[×]を表示
空欄のままテーブル    しない。
にデータが書き込ま    テキストボックスの
れてしまう。       入力チェックコード
             を記述した閉じる
             ボタンをフォーム上
             に新たに配置する
-------------------------------------------
移動ボタンをクリッ    移動ボタンを表示しな
クするとテキストボ    い。
ックスが空欄のまま    テキストボックスの
テーブルにデータが    入力チェックコード
書き込まれてしまう    を記述した移動ボタ
             ンを新たに配置する
-------------------------------------------

このような対策案ではいかがでしょうか

【3615】遅くなって申し訳ありません
質問  クロヒョウ  - 04/10/1(金) 11:52 -

引用なし
パスワード
   別件業務にかかりっきりになってしまい、
レスがものすごく遅くなりました。本当にすみません。


▼こもれび さん:
こもれびさんのおっしゃるとおり、金額欄は未入力のまま新規レコードを作成します。
また、場合によっては金額欄が永遠に空欄(請求なし)ということもあります。
さらに、金額を入力する人間と納品日を入力する人間が違います。

なので、レポートを出力してみてから『金額が入ってなかった〜!!』
なんてことになったりするのです。

せっかく考えていただいた対策案なんですが、現状に合っているのかどうかも
よおくわかりません。

何度もお手間を取らせてしまって、本当に申し訳ないですが
よろしくご指導お願いします。

【3616】Re:遅くなって申し訳ありません
回答  クロ  - 04/10/1(金) 14:48 -

引用なし
パスワード
   印刷(プレビュー)時にチェックしてみては?
※「請求するものをクエリーを使って抽出」のクエリは
 レポートのレコードソースでいいのですよね?
 仮に「クエリA」とします。


印刷(プレビュー)コマンドボタンのクリック時のイベントにコードで

Dim i As Integer, i2 As Integer
'クエリA内のレコード中の金額欄がないもののカウント数
i = DCount("*", "クエリA", "[金額] Is Not Null")
'クエリA内のレコードカウント数
i2 = DCount("*", "クエリA")
If i <> i2 Then
  MsgBox "金額がが未入力のものがあります"
  Exit Sub
Else
  DoCmd.OpenReport "レポート名", acViewPreview
End If

2170 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078299
(SS)C-BOARD v3.8 is Free