Access VBA質問箱 IV

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

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


547 / 9994 ←次へ | 前へ→

【12758】Re:複数抽出
質問  ゆか  - 15/3/24(火) 14:14 -

引用なし
パスワード
   かるびの様

ご多忙の中、返信ありがとうございます!


> 第1に、「利用終了者」というフィールドは存在しますが、
>「Yes/No型利用終了者」というフィールドは存在しません。
> 単なる間違いですかね。
他のところで、「Yes/No型〇〇〇」と書いてあったので、
書く必要があるものだと思っていました…。

> 第2に、このコードだと、
>「利用終了者」チェックボックスがFalseの場合でも、
>「利用終了者」フィールドがTrueであるレコードが抽出されていまいます。
> こんな動作で良いのでしょうか。
Falseの場合はFalseのみ、TrueのときはTrueのもののみ抽出できるようにしたいです。


>>Me.Filter = Mid(strFilter, 8)
> 以下は基本的なデバッグの方法の一つです。
> 
> このコードの直前の行に
>   Debug.Print "Mid関数前:" & strFilter  
>というコードを挿入し、直後の行に
>   Debug.Print "Mid関数後:" & strFilter  
>というコードを挿入してください。
>
> 次に、VBEにおいて、イミディエイトウィンドウを開いてください。
>具体的には、VBEのメニューの「表示(V)」→「イミディエイト ウィンドウ(I)」
>のコマンドを実行してください。
>
> その上で、cmdFilter_Clickのイベントプロシージャを実行してみてください。
>
> イミディエイトウィンドウに、「Debug.Print ××」のコードが実行された時点
>におけるstrFilter変数に格納された値が表示されます。
>
> それを見て、予定どおりの値になっているかよく確認してください。
予定通りの値には、なっておりませんでした・・・。

やはり
Me.Filter = Mid(strFilter, 8)でひっかかり、イミディエイトウィンドウには
Mid関数前: AND Me.txt利用者ID=100250001 AND Me.開始日 >= ## AND Me.終了日 <= ##と表示されています。因みに
>>If Not IsNull(Me.txt開始日) Then
> txt開始日に「2015/13/32」という値が入力された場合、これはNullでないので、
>上記If文に該当することになります。
> しかし、「2015/13/32」なんて日付はないので、
>Filterプロパティへの代入のところでエラーになります。
> そのため、IsNull関数の代わりにIsDate関数を使って、
>有効な日付かどうかチェックした方がいいと思います
上記で教えていただいたように、IsNullをIsDateに変更させていただきました。


> 同じことを角度を変えてお尋ねしますが、
>「Mid(strFilter, 8)」の「8」は、なぜ「8」なのですか。
色々な所でMid(strFilter, 6)が使われていたのですが、
フィルター項目が6項目の物ばかりだったので、項目数の数だと思い
フィルター項目が8あったので、8にしてみました!


> 以下蛇足です。
>>If Not IsNull(Me.利用終了者) Then
> 「利用終了者」チェックボックスのTripleStateプロパティは、
>どのように設定されていますか。
> おそらく、Falseが設定されていると思います。
> そうだとすると、チェックボックスは、TrueかFalseのいずれかの値しか返さず、
>Nullはありえません。
> したがって、常に「If Not IsNull(Me.利用終了者) Then」の条件を
>充たすことになります。
> つまり、「If Not IsNull(Me.利用終了者) Then」という条件には、
>意味がないということです。

トリプルステートは、仰る通り「いいえ」になっていました。
そうなんですね!そういう意味だということを初めて知りました。
教えて下さり、ありがとうございます!


> 施設利用についての情報と、利用者についての情報が混在しています。
> それぞれ別テーブルに分けた方が良いでしょう。
> 例えば、次のとおりです。
>
やはり分けたほうが宜しいのですね。
当初は何個かに分けていたのですが、
いまいちリレーションシップを作成する際に
一対多がいまいちわからなくなり、
一つのテーブルにまとめちゃったのが宜しくなかったのですね。
リレーションをマスターして、次回からはきちんと組めるように努めます!

471 hits

【12753】複数抽出 ゆか 15/3/23(月) 15:21 質問[未読]
【12756】Re:複数抽出 かるびの 15/3/24(火) 4:22 回答[未読]
【12758】Re:複数抽出 ゆか 15/3/24(火) 14:14 質問[未読]
【12764】Re:複数抽出 かるびの 15/3/25(水) 2:08 回答[未読]
【12775】Re:複数抽出 ゆか 15/3/25(水) 18:56 質問[未読]
【12777】Re:複数抽出 かるびの 15/3/26(木) 2:26 回答[未読]
【12782】Re:複数抽出 ゆか 15/3/28(土) 17:08 質問[未読]
【12783】Re:複数抽出 かるびの 15/3/29(日) 2:09 回答[未読]
【12787】Re:複数抽出 ゆか 15/3/30(月) 20:51 質問[未読]
【12790】Re:複数抽出 かるびの 15/3/31(火) 2:43 回答[未読]
【12793】Re:複数抽出 ゆか 15/3/31(火) 22:23 お礼[未読]

547 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free