Access VBA質問箱 IV

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

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


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

【7491】リスト入りフォームを閉じると値要求 Dis 06/3/11(土) 22:21 質問[未読]
【7494】Re:リスト入りフォームを閉じると値要求 小僧 06/3/13(月) 10:27 発言[未読]
【7503】Re:リスト入りフォームを閉じると値要求 Dis 06/3/13(月) 21:45 回答[未読]
【7504】Re:リスト入りフォームを閉じると値要求 Dis 06/3/13(月) 21:46 お礼[未読]
【7508】Re:リスト入りフォームを閉じると値要求 小僧 06/3/14(火) 11:54 回答[未読]
【7525】Re:リスト入りフォームを閉じると値要求 Dis 06/3/16(木) 0:36 お礼[未読]

【7491】リスト入りフォームを閉じると値要求
質問  Dis  - 06/3/11(土) 22:21 -

引用なし
パスワード
   リストボックスで悩んでいます。
データを絞り込んだ後、フォームを閉じるとパラメータ入力を要求されるのです。

社名一覧表から取引先を検索するために検索フォームを呼び出しています。
その検索フォームには2つのリストボックスがあります。
1つ目は「ふりがなリスト」で、「あ」「か」「さ」「た」「な」データを持つテーブルを値集合ソースにあてて、表示させています。
2つ目は「社名リスト」で「ふりがなりスト」から選択した行(あ、か、など)から、その行の文字を頭文字に持つ会社名のリストがでるようにしています。
値集合ソースとして別途作成したクエリーをあてています。このクエリーは「社名」と「ふりがな」フィールドを選択するクエリーで、「ふりがな」の抽出条件に「ふりがなリスト」のコントロールをあてています。
 また、更新後イベントには、選択された社名を持つレコードを表示し、検索フォームを閉じるようにコードを書いています。

検索フォームを開くと「ふりがなリスト」に、「あ」「か」「さ」「た」「な」が表示され、その内の1つをクリックすると、「社名リスト」に正常に表示がなされます。そして任意の社名を選択すると、その社名を含むレコードが正常に表示されます。この時にForms![検索フォーム]![ふりがなリスト]のパラメータを要求するボックスが表示されてしまうのです。
 ちなみに「社名リスト」の更新後イベントに記述したコードのうち、フォームを閉じる部分(DoCmd.Close acForm,"検索フォーム",acSaveNo)を消してみるとこのパラメータ要求はあらわれません。
逆に、イベントにDoCmd.Close〜だけを記述しても、パラメータ要求は現れます。
 DoCmd.Close〜を消去したままでも十分に機能するのですが、検索フォームを閉じることなく何度も開いていると不都合がありそうなので気がかりです。
どうかおたすけください。

【7494】Re:リスト入りフォームを閉じると値要求
発言  小僧  - 06/3/13(月) 10:27 -

引用なし
パスワード
   ▼Dis さん:
おはようございます。

>この時にForms![検索フォーム]![ふりがなリスト]のパラメータを要求する
>ボックスが表示されてしまうのです。


ご提示された情報からは読み取れないのですが、
検索フォームを閉じた後の処理に問題があるのではないかと思います。

検索フォームを閉じた事により「ふりがなリスト」が参照できないので
パラメータの入力が促されているのはないでしょうか。

社名リストの更新後処理で行っている事をもう少し詳しく説明頂けると
何かヒントが出てくるかもしれませんね。

【7503】Re:リスト入りフォームを閉じると値要求
回答  Dis  - 06/3/13(月) 21:45 -

引用なし
パスワード
   ご回答ありがとうございます。結局、あ行とかのコマンドボタンを作って、何とかごまかしてしまいました。すみませんでした。

ちなみに、「社名リスト」の更新後イベントなんですが、

DoCmd.OpenForm "会社名一覧", , ,"[会社名] = " & [Forms]![検索フォーム]![社名リスト] & ""
'Msgbox [Forms]![検索フォーム]![ふりがなリスト]
DoCmd.Close acForm,"検索フォーム",acSaveNo

これだけです。これまではリストボックスに全てのレコードを表示させて選んでいましたが、リストボックスを連動させて検索しやすくしようと思ったのです。
msgboxの前の'を外すと、Closeする直前までふりがなリストのコントロールの値は正常なようです。「あ」を選べばMsgboxで「あ」と表示されます。
とりあえず、Sendkeys "{ENTER}"でパラメーターに[OK]を入力したり、Close文に'をつけたりして無理から動かせていますが、前に書いたとおり、検索フォームを閉じないまま、なんども検索フォームを開く動作を繰り返していると不都合がありそうできがかりです。

【7504】Re:リスト入りフォームを閉じると値要求
お礼  Dis  - 06/3/13(月) 21:46 -

引用なし
パスワード
   種別まちがいでした
ありがとうございました。

【7508】Re:リスト入りフォームを閉じると値要求
回答  小僧  - 06/3/14(火) 11:54 -

引用なし
パスワード
   ▼Dis さん:
こんにちは。

>Sendkeys "{ENTER}"でパラメーターに[OK]を入力したり

Sendkeys はタイミングによって発行されなかったりするので
安定性に掛けてしまいますね。


>DoCmd.OpenForm "会社名一覧", , , _
>        "[会社名] = " & [Forms]![検索フォーム]![社名リスト] & ""
>'Msgbox [Forms]![検索フォーム]![ふりがなリスト]
>DoCmd.Close acForm,"検索フォーム",acSaveNo

上記のコードを使用してみた所、当方の環境でも再現されました。
会社名は数値型でなく、テキスト型ですよね?

>       "[会社名] = " & [Forms]![検索フォーム]![社名リスト] & ""
       "[会社名] = '" & [Forms]![検索フォーム]![社名リスト] & "'"

とするとどうなるでしょうか。

【7525】Re:リスト入りフォームを閉じると値要求
お礼  Dis  - 06/3/16(木) 0:36 -

引用なし
パスワード
   ▼小僧 さん:
ご回答、感謝します

>会社名は数値型でなく、テキスト型ですよね?
はい。テキスト型です。

>>       "[会社名] = " & [Forms]![検索フォーム]![社名リスト] & ""
>        "[会社名] = '" & [Forms]![検索フォーム]![社名リスト] & "'"
>
>とするとどうなるでしょうか。
同じです。パラメーター入力を求められます。
といいますか、OpenFormの一行を削除してもCloseの一行があるかぎり、パラメーター入力を求められます。
closeでacSaveNoとか、DoCmd.Closeだけとかイロイロ試したのですが、ダメでした。
あと、ふと思いついて同じフォーム内にもう1つリストボックスを作って、更新後のイベントにCloseを記述してみたらパラメーターの要求はなく普通に閉じられましたが、これじゃ解決になってませんね(^-^;
まあ 今は何とか使えているので、これでもいいと思っています。
ありがとうございました。

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