Access VBA質問箱 IV

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

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


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

【3690】購入実績を検索するACCESSを作りたい えなりん 04/10/13(水) 14:30 質問[未読]
【3693】Re:購入実績を検索するACCESSを作りたい クロ 04/10/13(水) 16:56 回答[未読]
【3694】Re:購入実績を検索するACCESSを作りたい えなりん 04/10/13(水) 17:18 質問[未読]
【3695】Re:購入実績を検索するACCESSを作りたい クロ 04/10/13(水) 17:24 回答[未読]
【3698】Re:購入実績を検索するACCESSを作りたい えなりん 04/10/14(木) 8:30 質問[未読]
【3699】Re:購入実績を検索するACCESSを作りたい クロ 04/10/14(木) 8:42 回答[未読]
【3701】Re:購入実績を検索するACCESSを作りたい えなりん 04/10/14(木) 9:10 お礼[未読]
【3705】Re:購入実績を検索するACCESSを作りたい クロ 04/10/14(木) 10:26 回答[未読]
【3708】Re:購入実績を検索するACCESSを作りたい えなりん 04/10/14(木) 13:09 お礼[未読]

【3690】購入実績を検索するACCESSを作りたい
質問  えなりん  - 04/10/13(水) 14:30 -

引用なし
パスワード
   こんにちは。
是非みなさまのお知恵をお貸しください。

次のようなACCESS(Ver.2000)を作りたいと考えています。
1.取引先cd、品名(部分一致)、仕様(部分一致)で検索し、
 該当レコードを一覧で表示する。
2.該当レコードの品名をクリックすると、その詳細データを表示する。
 購入実績の詳細は常に画面上に開いていて、検索結果の品名をクリックする度に
 その内容が変わるようにしたい。
 さらには、検索結果の品名に条件付書式をつけて、「この品名を選択してるよ」と
 わかるようにしたい。
3.該当データがない場合は、空の詳細を表示し、新規に入力できるようにする。

自分なりに考えて次のように作ってみたのですが。
1.検索用フォーム(帳票)を作り、入力した検索の条件をつなげwhereとし、
 ApplyFilterを使ってみました。
2.詳細用フォーム(単票)を作り、検索用フォームのCurrentイベントで詳細フォームを
 openformするようにしてみました。
3.該当データがない場合として、検索用フォームのCurrentイベント時に
  stDocName = "詳細用フォーム"  
  If IsNull(Forms![検索用フォーム]![一覧オートNO]) Then
     MsgBox "実績ありません", vbQuestion + vbOKOnly
     DoCmd.SelectObject acForm, stDocName
    DoCmd.OpenForm stDocName, , , , acFormAdd
    Else
     stLinkCriteria = "[オートno]=" & Forms![検索用フォーム]![一覧オートNO]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
  End If
 という文を入れてみました。

でも、詳細用フォームがacformaddで開かないのです。gotorecored 〜acnextでもダメでした。

根本的な考え方の変換も含め、どのような処理がいいのか教えてください。

【3693】Re:購入実績を検索するACCESSを作りたい
回答  クロ  - 04/10/13(水) 16:56 -

引用なし
パスワード
   変数にするほどでないので直接書きました。

If IsNull(Me.一覧オートNO) Then
 MsgBox "実績ありません", vbQuestion + vbOKOnly
 DoCmd.OpenForm "詳細用フォーム", , , , acFormAdd
 DoCmd.GoToRecord , , acNewRec
Else
 DoCmd.OpenForm "詳細用フォーム", , , "[オートNO]=" & Me.一覧オートNO
End If

※半角カナは全角カナに変更してあります。

注意点
名称に半角カナを使うのはやめましょう。後々面倒なことになります。
早めに改名した方がいいと思います。
参照URL
http://ww3.tiki.ne.jp/~kaya/Ac_tips.html#Tips0_001

【3694】Re:購入実績を検索するACCESSを作りたい
質問  えなりん  - 04/10/13(水) 17:18 -

引用なし
パスワード
   さっそくのご回答ありがとうございます。
ご指摘の通り、半角カナを全角カナに直しました。

それと、DoCmd.GoToRecord , , acNewRecの件ですが、
DoCmd.GoToRecord , , acNewRecを追加してみました。
結果としては、変わらずです。
[検索]ボタンをクリックする前に表示していた詳細データが表示されたままになってしまいます。

【3695】Re:購入実績を検索するACCESSを作りたい
回答  クロ  - 04/10/13(水) 17:24 -

引用なし
パスワード
   詳細用フォームのプロパティで「追加の許可」が「いいえ」に
なっていませんか?

【3698】Re:購入実績を検索するACCESSを作りたい
質問  えなりん  - 04/10/14(木) 8:30 -

引用なし
パスワード
   クロさん度々のアドバイスありがとうございます。

「追加の許可」を確認しましたが、ちゃんと「はい」になっています。

試しに、検索フォームに新たにボタンを作り(「新規登録」)openform〜acaddをするようにしたところ、問題なく空データの詳細フォームが開きました。
Currentイベントがいけないのでしょうか。

【3699】Re:購入実績を検索するACCESSを作りたい
回答  クロ  - 04/10/14(木) 8:42 -

引用なし
パスワード
   検索用フォームの「オートNo」のクリック時のイベントではどうですか?

※当方ではフォームのレコード移動時でも特に問題なく詳細用フォームは
 開き、検索用フォームのレコード移動時でも詳細用フォームの内容は可
 変します。Win2000SP4+Access2002SP3

【3701】Re:購入実績を検索するACCESSを作りたい
お礼  えなりん  - 04/10/14(木) 9:10 -

引用なし
パスワード
   お返事早いのでビックリしました。
本当に∞ありがとうございます。

検索フォームで、品名や仕様で検索するために「検索」ボタンを作り
DoCmd.ApplyFilter , stLinkCriteria
DoCmd.GoToControl "一覧品名"
という記述をしていました。
一覧の品名に条件付書式(フォーカスのあるフィールド)をつけていたので、どうしてもDoCmd.GoToControl "一覧品名" が必要だと思ったんです。
DoCmd.GoToControl "一覧品名" がないと、「検索」ボタンを押した時の、最初のレコードに条件付書式がつかなかったんです。
それを
DoCmd.GoToControl "一覧品名"
DoCmd.ApplyFilter , stLinkCriteria
と書き換えたら、条件書式もつき、詳細フォームで空データも表示できるようになりました。

この違いは何なのでしょうか。
おかげさまで問題は解決したようですが、なんだか「え?」ってカンジです。

【3705】Re:購入実績を検索するACCESSを作りたい
回答  クロ  - 04/10/14(木) 10:26 -

引用なし
パスワード
   >この違いは何なのでしょうか。

検索用フォームレコード移動時(Currentイベント)がフィルタ処理後に実行される
実行されると詳細用フォームにフォーカスが移るのでフィルタ後に
DoCmd.GoToControl "一覧品名"
を記述すると問題が出たのでは?
※フィルタ処理後に実行されると場合によってはレコートが移動するのでCurrent
 イベントが動いたと憶測....

【3708】Re:購入実績を検索するACCESSを作りたい
お礼  えなりん  - 04/10/14(木) 13:09 -

引用なし
パスワード
   たくさんのお返事をありがとうございました。

また何かありましたら質問させてください。

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