
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ランキング
-
C# DataTableに最後に追加した...
-
【ExcelVBA】値を変更しながら...
-
VBAコンボボックスの内容が反映...
-
COBOL数値転記の仕様
-
【C#】textBoxの指定行のデータ...
-
Excel VBA で日付を4ケタの数値...
-
XMLでデータとして画像を指定す...
-
Excel VBAでフォルダ内の全テキ...
-
【VB.NET】Excelの最終行までの...
-
Access クエリで変数を参照する...
-
ファイル名の一部削除について
-
C#でbyte配列から画像を表示さ...
-
数値の値を時刻に変換する方法...
-
フォーム部品「file」内容をク...
-
CString型 全角半角を意識せず...
-
accessでフィールド追加のあと...
-
日付と文字列を条件としてDLook...
-
エクセルでXY座標に並べられた...
-
WORD型をCString型に変換する方法
-
ACCESS2010 実行時エラー 2766
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# DataTableに最後に追加した...
-
【C#】textBoxの指定行のデータ...
-
VBAコンボボックスの内容が反映...
-
VBAでアクセスDBからデータの取...
-
【VB.NET】Excelの最終行までの...
-
XMLでデータとして画像を指定す...
-
VB2010で、選択した系列を最前...
-
Excel VBAで1週間毎にカテゴリ...
-
COBOL数値転記の仕様
-
【ExcelVBA】値を変更しながら...
-
非同期のプロセス間通信(パイプ...
-
「Nullの使い方が不正です」の...
-
エクセルのマクロ コンボボッ...
-
ExcelVBAで戻り値を返すには
-
Excel VBAでフォルダ内の全テキ...
-
ListViewで表示されたデータの...
-
クリスタルレポートでレコード...
-
Excel VBA で日付を4ケタの数値...
-
ActiveReportのdetailをデータ...
-
アクセスでウェブ上のデータを...
おすすめ情報