Access VBA質問箱 IV

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

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


549 / 9994 ←次へ | 前へ→

【12756】Re:複数抽出
回答  かるびの  - 15/3/24(火) 4:22 -

引用なし
パスワード
   >If Not IsNull(Me.利用終了者) Then
>    strFilter = "(" & strFilter & ") or [Yes/No型利用終了者]=True"
>End If
 第1に、「利用終了者」というフィールドは存在しますが、
「Yes/No型利用終了者」というフィールドは存在しません。
 単なる間違いですかね。

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


>Me.Filter = Mid(strFilter, 8)
 以下は基本的なデバッグの方法の一つです。
 
 このコードの直前の行に
   Debug.Print "Mid関数前:" & strFilter  
というコードを挿入し、直後の行に
   Debug.Print "Mid関数後:" & strFilter  
というコードを挿入してください。

 次に、VBEにおいて、イミディエイトウィンドウを開いてください。
具体的には、VBEのメニューの「表示(V)」→「イミディエイト ウィンドウ(I)」
のコマンドを実行してください。

 その上で、cmdFilter_Clickのイベントプロシージャを実行してみてください。

 イミディエイトウィンドウに、「Debug.Print ××」のコードが実行された時点
におけるstrFilter変数に格納された値が表示されます。

 それを見て、予定どおりの値になっているかよく確認してください。


 同じことを角度を変えてお尋ねしますが、
「Mid(strFilter, 8)」の「8」は、なぜ「8」なのですか。


 以下蛇足です。
>If Not IsNull(Me.利用終了者) Then
 「利用終了者」チェックボックスのTripleStateプロパティは、
どのように設定されていますか。
 おそらく、Falseが設定されていると思います。

 そうだとすると、チェックボックスは、TrueかFalseのいずれかの値しか返さず、
Nullはありえません。
 したがって、常に「If Not IsNull(Me.利用終了者) Then」の条件を
充たすことになります。
 つまり、「If Not IsNull(Me.利用終了者) Then」という条件には、
意味がないということです。


>If Not IsNull(Me.txt開始日) Then
 txt開始日に「2015/13/32」という値が入力された場合、これはNullでないので、
上記If文に該当することになります。
 しかし、「2015/13/32」なんて日付はないので、
Filterプロパティへの代入のところでエラーになります。
 そのため、IsNull関数の代わりにIsDate関数を使って、
有効な日付かどうかチェックした方がいいと思います。
 

>テーブル:利用者
>利用者ID(主キー):テキスト型
>請求コード:数値型
>利用施設:テキスト型(テーブル:施設のルックアップ)
>金融機関コード:数値型
>支店コード:数値型
>預金種目コード:数値型
>口座番号:数値型
>口座名義人:テキスト型
>住所:テキスト型
>連絡先:テキスト型
>備考:メモ型
>利用開始日:日付/時刻型
>利用終了日:日付/時刻型
>利用終了者:Yes/No型

 施設利用についての情報と、利用者についての情報が混在しています。
 それぞれ別テーブルに分けた方が良いでしょう。
 例えば、次のとおりです。

「施設利用」テーブル
利用ID   オートナンバー 主キー
施設ID   長整数型
利用者ID  長整数型
利用開始日 日付型
利用終了日 日付型
備考    メモ型

「利用者マスタ」テーブル
利用者ID  オートナンバー 主キー
氏名    テキスト型
住所    テキスト型
連絡先   テキスト型
利用終了者 Yes/No型

 金融機関コード、支店コード、預金種目コード、口座番号、口座名義人の
各フィールドですが、
利用者の預金口座を入力するのか、施設設営者の預金口座を入力するのか
わからなかったので、振り分けてはいません。
 利用者の預金口座なら、これらのフィールドは「利用者マスタ」テーブルに設けることになると思います。

 「請求コード」フィールドですが、
「利用者」テーブルに置くのではなく、
「請求」テーブルに長整数型の「利用ID」フィールドを設けるべきだと思います。

430 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 お礼[未読]

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