Access VBA質問箱 IV

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

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


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

【9084】Access フォーム上のオプションボタンからの条件設定 ななみママ 07/2/3(土) 12:20 質問[未読]
【9086】Re:Access フォーム上のオプションボタンか... 小僧 07/2/5(月) 11:03 回答[未読]
【9087】Re:Access フォーム上のオプションボタンか... ななみママ 07/2/5(月) 13:51 質問[未読]
【9088】Re:Access フォーム上のオプションボタンか... 小僧 07/2/5(月) 14:02 回答[未読]
【9089】Re:Access フォーム上のオプションボタンか... ななみママ 07/2/5(月) 14:36 質問[未読]
【9090】Re:Access フォーム上のオプションボタンか... 小僧 07/2/5(月) 14:48 発言[未読]
【9091】Re:Access フォーム上のオプションボタンか... ななみママ 07/2/5(月) 14:58 質問[未読]
【9092】Re:Access フォーム上のオプションボタンか... 小僧 07/2/5(月) 15:27 発言[未読]
【9093】Re:Access フォーム上のオプションボタンか... ななみママ 07/2/5(月) 15:43 質問[未読]
【9094】Re:Access フォーム上のオプションボタンか... 小僧 07/2/5(月) 16:35 発言[未読]
【9095】Re:Access フォーム上のオプションボタンか... ななみママ 07/2/6(火) 10:26 お礼[未読]

【9084】Access フォーム上のオプションボタンか...
質問  ななみママ  - 07/2/3(土) 12:20 -

引用なし
パスワード
   いつもお世話になっています。

フォーム上に、「未対応」、「対応済」、「全件」という3つのオプションボタンを
配置しています。
Yes/NO型のフィールドから、
  「未対応」オプションボタン=Trueの場合、Noのレコードを表示
  「対応済」オプションボタン=Trueの場合、Yesのレコードを表示
  「全件」オプションボタン=Trueの場合、全てのレコードを表示
するためには、クエリの抽出条件をどう設定したらよいのでしょうか?
どなたか教えてください!!

ちなみに今は、頭を悩ませた結果、2つのクエリを作り、
  1つには、NZ([Forms]![☆初期画面]![オプション40],No) →「未対応」、「対応済」
  1つには、何も設定しない → 「全件」
としています。

【9086】Re:Access フォーム上のオプションボタン...
回答  小僧  - 07/2/5(月) 11:03 -

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

>フォーム上に、「未対応」、「対応済」、「全件」という3つのオプションボタンを
>配置しています。

オプションボタンだけでなく、オプショングループも配置していますか?
今回の場合「未対応」「対応済」「全件」を複数選ぶ場合はなさそうですので
まずはオプショングループを配置し、その中にオプションボタンを配置して下さい。

次にオプション値の設定をします。
こちらの値を決める事により、オプショングループ(以下フレームと呼びます)
の値が決まってきます。

「未対応」のオプションボタンのオプション値を0
「対応済」のオプションボタンのオプション値を1
「全件」のオプションボタンのオプション値を2

とすると、

「未対応」のボタンが押されている時のフレームの値は0、
「対応済」のボタンが押されている時のフレームの値は1、
「全件」のボタンが押されている時のフレームの値は2

となります。


さて、ここからが問題なのですが
Yes/No型のフィールドが「Yes」の場合、数値で表現すると -1 という値が
「No」の場合は 0 という値が格納されています。

>  「未対応」オプションボタン=Trueの場合、Noのレコードを表示
>  「対応済」オプションボタン=Trueの場合、Yesのレコードを表示
>  「全件」オプションボタン=Trueの場合、全てのレコードを表示

という事は

>>  「未対応」オプションボタン=Trueの場合、0 のレコードを表示
>>  「対応済」オプションボタン=Trueの場合、-1 のレコードを表示
>>  「全件」オプションボタン=Trueの場合、全てのレコードを表示

となり、更に応用すると

>>>  「未対応」オプションボタン=Trueの場合、-1 以外 のレコードを表示
>>>  「対応済」オプションボタン=Trueの場合、 0 以外 のレコードを表示
>>>  「全件」オプションボタン=Trueの場合、全てのレコードを表示

となります。

以上をふまえて(ややこしいですよね)

「未対応」オプションボタンのオプション値 ⇒ -1
「対応済」オプションボタンのオプション値 ⇒  0
「全件」 オプションボタンのオプション値 ⇒  2 (-1,0以外)

クエリの抽出条件
<>[forms]![☆初期画面]![フレーム名]

という様な感じで実現できると思われます。

【9087】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 13:51 -

引用なし
パスワード
   ▼小僧 さん:
返信どうもありがとうございます!!

>「未対応」オプションボタンのオプション値 ⇒ -1  
>「対応済」オプションボタンのオプション値 ⇒  0  
>「全件」 オプションボタンのオプション値 ⇒  2 (-1,0以外)

「未対応」オプションボタンのオプション値 ⇒ 0    …☆
 「対応済」オプションボタンのオプション値 ⇒ -1   …☆
となりますよね?!
(私、理解してないでしょうか??)

> クエリの抽出条件
> <>[forms]![☆初期画面]![フレーム名]
>
> という様な感じで実現できると思われます。

やってみましたが、
「未対応」オプションボタン=Trueのとき、対応済レコードが表示
「対応済」オプションボタン=Trueのとき、全件表示
「全件」オプションボタン=Trueのとき、全件表示
されてしまいました。

もし私の上記、「…☆」で合っていれば、
絶対値(オプション値)=フレーム値
となりますが、絶対値じゃ、できませんよね(^-^;
返信、よろしくお願いしますm(__)m

【9088】Re:Access フォーム上のオプションボタン...
回答  小僧  - 07/2/5(月) 14:02 -

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

>> クエリの抽出条件
>> <>[forms]![☆初期画面]![フレーム名]

ポイントは「=」でなく「<>」を使っている所です。


>「未対応」オプションボタンのオプション値 ⇒ 0 
>「対応済」オプションボタンのオプション値 ⇒ -1
>となりますよね?!
>(私、理解してないでしょうか??)

上記の様ですと、全件表示が出来なくなってしまう為、

未対応 の場合は 対応済 である「0」以外を抽出
対応済 の場合は 未対応 である「1」以外を抽出
全件  の場合は 存在しない  「2」以外を抽出


の様にする事で3つのパターンを実現できる様に考えてみました。

【9089】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 14:36 -

引用なし
パスワード
   ▼小僧 さん:
度々すみません(^^;
理解しました!
しかし、小僧さんから教えていただいたとおり、やってみたのですが、
やっぱり
「未対応」オプションボタン選択時、対応済レコードが表示
「対応済」オプションボタン選択時、全件表示
「全件」オプションボタン選択時、全件表示
となってしまいます。

よろしくお願いしますm(__)m

【9090】Re:Access フォーム上のオプションボタン...
発言  小僧  - 07/2/5(月) 14:48 -

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

>やっぱり
>...
>となってしまいます。

こちらのテストではうまく行っているのですが…どこが違うのでしょうね…。

差し支えなければで結構なのですが
クエリをSQLビューで開いて、表示されているSQLをご提示して頂けますでしょうか。
何かヒントになるものがあるかもしれません。

【9091】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 14:58 -

引用なし
パスワード
   ▼小僧 さん:
大変お世話かけます。。。

SELECT お客様相談.整理NO, お客様相談.受付日, お客様相談.受付時間, お客様相談.受付者, お客様相談.お客様氏名, お客様相談.お客様ふりがな, お客様相談.お客様住所, お客様相談.お客様電話番号, お客様相談.管理部署, お客様相談.内容分類, お客様相談.お客様の声, お客様相談.対応日, お客様相談.対応時間, お客様相談.依頼者, お客様相談.対応者, お客様相談.確認者, お客様相談.対応内容, お客様相談.対応済
FROM お客様相談
WHERE (((お客様相談.整理NO) Like [Forms]![☆初期画面]![受付整理NO] & "*") AND ((お客様相談.受付日) Between NZ([Forms]![☆初期画面]![期間指定開始],#1/1/1900#) And NZ([Forms]![☆初期画面]![期間指定終了],#12/31/2050#)) AND ((お客様相談.管理部署) Like [Forms]![☆初期画面]![コンボ15] & "*") AND ((お客様相談.内容分類) Like [Forms]![☆初期画面]![コンボ17] & "*") AND ((お客様相談.対応済)<>[Forms]![☆初期画面]![フレーム46]))
ORDER BY お客様相談.受付日;

よろしくお願い致しますm(__)m

【9092】Re:Access フォーム上のオプションボタン...
発言  小僧  - 07/2/5(月) 15:27 -

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

こちらだとうまく行く為、
フォームをチェックしてみましょう。

確認なのですが、先にオプショングループを作ったのちに
新規のオプションボタンを配置していますでしょうか。

「未対応」「対応済」「全件」の 1 つを選ぶと
他のオプションボタンは選べない状態になっていれば
こちらと同じ状況なのですが…。

【9093】Re:Access フォーム上のオプションボタン...
質問  ななみママ  - 07/2/5(月) 15:43 -

引用なし
パスワード
   ▼小僧 さん:
何度もありがとうございます。
> 確認なのですが、先にオプショングループを作ったのちに
> 新規のオプションボタンを配置していますでしょうか。

フォーム上で、オプショングループを作り、オプショングループウィザード
に従って、3つのオプションボタンを配置しました。

>
> 「未対応」「対応済」「全件」の 1 つを選ぶと
> 他のオプションボタンは選べない状態になっていれば
> こちらと同じ状況なのですが…。

1つを選ぶと、他は選べない状態になっています…。

【9094】Re:Access フォーム上のオプションボタン...
発言  小僧  - 07/2/5(月) 16:35 -

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

まずはフォームの方がうまくいっているかの再確認です。
フレームの方の更新後処理に

Private Sub フレーム46_AfterUpdate()
  MsgBox Me.フレーム46.Value
End Sub

の様なVBAの記述をし、期待通りの値が返って来るかを確認されてみて下さい。


また、今回はこちらのオプションボタンについての検証ですので、
他の要因になりそうなものは全部外してチェックしてみましょう。

SELECT お客様相談.整理No, お客様相談.対応済
FROM お客様相談
WHERE (((お客様相談.対応済)<>[Forms]![☆初期画面]![フレーム46]));

【9095】Re:Access フォーム上のオプションボタン...
お礼  ななみママ  - 07/2/6(火) 10:26 -

引用なし
パスワード
   ▼小僧 さん:
おはようございます。
昨日は色々とありがとうございました。
おかげで、うまくいきました!
私の勘違いで、オプション値の設定が間違えていました…
(どうやら理解していなかったようです)
長い間付き合っていただいて、本当にすみませんm(__)m
またよろしくお願いします。

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