No.2ベストアンサー
- 回答日時:
再びmaruru01です。
まず、WhereCondというのは、全検索条件を繋げた最終的な条件文字列ですから、
WhereCond = "取得日 BETWEEN #" & 取得日1.Value & "# AND #" & 取得日2.Value & "#"
としてしまうと、これまでのIDやら名前やらが全て無駄になってしまいます。(せっかくWhereCondに格納したのに、上書きしてしまっているので。)
で、書き方はIDとかと基本的に同じです。
変数宣言で
Dim whereDate As String
を追加し、取得日のところを、
'取得日
If Me!txt取得日1.Value <> "" And Me!txt取得日2.Value <> "" Then
whereDate = "(T_マスタテーブル.取得日 BETWEEN #" & Me!txt取得日1.Value & "# AND #" & Me!txt取得日2.Value & "#)"
WhereCond = WhereCond & tempOper & whereDate
End If
で、この後に、先頭の演算子を削除するためのMid関数の文(でしたっけ)以降を入れます。
ちなみに、T_マスタテーブルの取得日フィールドのデータ型が日付になっていないとエラーになります。
あと、condIDという変数が出てきますが、これはwhereIDの間違いですよね。
では。
ありがとうございます!!
できました。
>まず、WhereCondというのは、全検索条件を繋げた最終的な条件文字列ですから、
そうだったんですが、知りませんでした。
>あと、condIDという変数が出てきますが、これはwhereIDの間違いですよね。
はい、そうです、お恥ずかしい。。。
>f Me!txt取得日1.Value <> "" And Me!txt取得日2.Value <> "" Then
ここの書き方が一番よくわからなくて、悩んでいたんです。
無事解決しました。
ありがとうございました。
No.1
- 回答日時:
こんにちは。
maruru01です。検索フォームに[txt取得日1]と[txt取得日2]というテキストボックスがあるとします。
例えば、[表示]ボタンのようなコマンドボタンのクリックイベントに以下のように書きます。
Dim WhereCond As String
WhereCond = "取得日 BETWEEN #" & txt取得日1.Value & "# AND #" & txt取得日2.Value & "#"
DoCmd.OpenForm "検索結果フォーム", , acNormal, WhereCond, acFormEdit, acWindowNormal
OpenFormメソッドの各引数の詳細はヘルプなどを参照して下さい。
なお、予め"検索結果フォーム"のレコードソースプロパティに、"T_マスタテーブル"を指定しておいて下さい。
ちなみに2つのテキストボックスの内容が、日付と認識出来ない文字列だとエラーになります。
では。
この回答への補足
いつもいつもありがとうございます。
質問文にはかいていなかったのですが、
他にも検索条件があり、そちらはきちんと入力されていて、OKの状態です。
----------こんな感じです----------
Dim SQL As String
Dim WhereCond As String
Dim whereId As String
Dim whereName As String
Dim whereBirth As String
Dim whereSex As String
WhereCond = "" '変数の初期化。本当はいらないけど明示的に。
Select Case Me!frame.Value
Case 1 'AND検索
tempOper = " AND " '前後の半角スペースを忘れずに
strCount = 5
Case 2 'OR検索
tempOper = " OR " '前後の半角スペースを忘れずに
strCount = 4
End Select
tempCond = ""
'ID
If Me!ID.Value <> "" Then
condId = "(T_マスタテーブル.ID like '*" & Me!ID.Value & "*')"
WhereCond = WhereCond & tempOper & condId
End If
:
:
:
------------------------------
ここに
'取得日
WhereCond = "取得日 BETWEEN #" & 取得日1.Value & "# AND #" & 取得日2.Value & "#"
としてしまったのですが、エラーが出てしまいます。
修正点を教えていただけますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- その他(ブラウザ) Mycrosoft Edge フォームの履歴を完全に削除したい 3 2022/08/11 09:59
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
データ数をカウントしたいのですが
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
Flexgridで選択行の列の値を取...
-
ListView 項目の選択/選択解除...
-
リストビュー:先頭行のアイテ...
-
時間を分に変換するプログラム
-
ドロップダウンリストの初期表...
-
like演算子内に変数って使えな...
-
EXCELのリストボックスを選択し...
-
getParameter と getAttribut...
-
asp.netでtextboxの値を取得
-
ListViewで複数選択された項目...
-
imgctl.dllを使って読み込んだ...
-
VB6.0のレジストリ情報取得方法
-
Google Apps Script で、Web上...
-
利用者側のMACアドレスを取得し...
-
.NETで現在時刻を常に動作させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
VBA:小数点以下の数字を取得で...
-
ListView 項目の選択/選択解除...
-
like演算子内に変数って使えな...
-
count(*)で取得した値をJAVAの...
-
利用者側のMACアドレスを取得し...
-
データ数をカウントしたいのですが
-
JavaScriptでWindowsログオンID...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
VBA リストボックス複数選択か...
-
getParameter と getAttribut...
-
Excel VBA でログインしてい...
-
VBScriptで数値にコンマを付け...
-
Spreadの選択行の取得について
-
コンボボックスの表示は最大何行?
-
コンボボックス表示文字列を取...
-
VB .netにて現在時刻+1時間後...
おすすめ情報