ACCESSフォーム内のテキストボックスが空欄かどうかで条件分岐させる方法を教えてください。
フォーム内に複数テキストボックスがあります。
テキスト1
テキスト2
テキスト3
このテキストボックスの入力があるかどうかで、
エクスポートするクエリを変更したいです。
それぞれのテキストボックスの入力値は、
対応するクエリの抽出条件になっています。
少なくとも、テキスト1には入力があるという条件で、
・テキスト2が空白なら、クエリ2を出力する
・テキスト3が空白なら、クエリ3を出力する
という処理を行いたいのです。
マクロビルダーで、IFを使った処理は作ることができたのですが、
VBAを使って、同じ処理ができるようにしたいです。
どうかご教授のほど、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
以下ではどうですか。
一応、ボタンクリックのイベントで対応しています。
いくつか余分な処理をコメントアウトしていれてますが、
何かの参考にしてください。
それと、メッセージボックスが出るようになっていますが、
実際の時には必要なければコメントアウトするなり、
消すなりしてください。
(クエリを表示する方法はわかりますよね。)
Private Sub コマンド0_Click()
'テキスト1にデータが入力されている場合
If Not IsNull(Me!テキスト1) Then
'テキスト2にデータがありテキスト3にデータがない場合
If Not IsNull(Me!テキスト2) And IsNull(Me!テキスト3) Then
MsgBox "クエリ2を出力します。"
'クエリ2を表示する処理をいれてください。たとえば、以下のように
'DoCmd.OpenQuery "クエリ2"
End If
'テキスト2にデータがなく、テキスト3にデータがある場合
If IsNull(Me!テキスト2) And Not IsNull(Me!テキスト3) Then
MsgBox "クエリ3を出力します"
'クエリ3を表示する処理をいれてください。たとえば、以下のように
'DoCmd.OpenQuery "クエリ3"
End If
' 'テキスト2とテキスト3の両方にデータがある場合
' If Not IsNull(Me!テキスト2) And Not IsNull(Me!テキスト3) Then
' MsgBox "両方ゲット"
' '何か適当な処理
' End If
' 'テキスト2もテキスト3もデータがない場合
' If IsNull(Me!テキスト2) And IsNull(Me!テキスト3) Then
' MsgBox "両方なし"
' '何か適当な処理
' End If
'テキスト1にデータが入力されていない場合
Else
MsgBox "出なしてください"
End If
End Sub
ところで、表示したクエリのエクスポートはOffice Linksで
Excelなりに出力するということでいいのでしょうか?
それとも・・・・・・・直接・・・・・・・?いや何でもありません。
お礼が遅くなりましてすいませんでした。
やりたかった通りのコードをいただき、ありがとうございます。
とても助かりました。
ちなみに、選んだクエリは直接excel出力するつもりで、
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "クエリ1"
みたいな感じにしようと思っています。
この度は、どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access の SetFocus について教えてください 5 2022/08/04 07:32
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- PDF PDFのテキストを追加機能 1 2022/06/18 12:45
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】値を変更しながら...
-
COBOL数値転記の仕様
-
C# DataTableに最後に追加した...
-
Excel VBAでフォルダ内の全テキ...
-
VBAの問題がわからないのでどな...
-
矩形グラフ(オシロやロジアナ...
-
XMLでデータとして画像を指定す...
-
「Nullの使い方が不正です」の...
-
アクセスでウェブ上のデータを...
-
VBA 変数名に変数を使用したい。
-
他のMDBのテーブルに追加したい
-
Dir関数で読み取り順を操作でき...
-
エクセルのテーブルを解除する...
-
Excel複数シートをaccessへ一括...
-
vba フィルター 複数条件 3つ以...
-
グラフの「項目軸ラベルに使用...
-
Redim とEraseの違いは?
-
Excelのメモリ(配列)の上限は2G...
-
16進をASCIIコードに変換する...
-
『列名 '担当者CD' があいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】textBoxの指定行のデータ...
-
「Nullの使い方が不正です」の...
-
VBAでアクセスDBからデータの取...
-
【VB.NET】Excelの最終行までの...
-
Excel VBAでフォルダ内の全テキ...
-
C# DataTableに最後に追加した...
-
XMLでデータとして画像を指定す...
-
VBAコンボボックスの内容が反映...
-
MSFlexGrid 行選択状態
-
COBOL数値転記の仕様
-
クリスタルレポートでレコード...
-
非同期のプロセス間通信(パイプ...
-
ActiveReportのdetailをデータ...
-
アクセスでウェブ上のデータを...
-
Excel VBAでグループ毎に集計す...
-
batでレジストリキーから読み取...
-
富士通(汎用機)のAIMについて
-
Web画面のTableから数字を取得...
-
エクセルのCSV読み込みについて
-
Excel VBA で日付を4ケタの数値...
おすすめ情報