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ランキング
-
XMLでデータとして画像を指定す...
-
Excel VBAでフォルダ内の全テキ...
-
【C#】textBoxの指定行のデータ...
-
Excel VBAで1週間毎にカテゴリ...
-
クリスタルレポートでレコード...
-
エクセルのCSV読み込みについて
-
VB6のMsFlexGridコントロールに...
-
「Nullの使い方が不正です」の...
-
wordにexcelデータの流し込み、...
-
Excel VBA WEBからデータ取得時...
-
Excel VBA で日付を4ケタの数値...
-
COBOL数値転記の仕様
-
ActiveReportのdetailをデータ...
-
VC++2010のエディットボックス...
-
エクセル・グラフの 横軸に値を...
-
MSFlexGrid 行選択状態
-
access vba 『○○件づつ表示』を...
-
エクセルのマクロ コンボボッ...
-
VBAでアクセスDBからデータの取...
-
VB2005 で NetworkStream で取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XMLでデータとして画像を指定す...
-
【C#】textBoxの指定行のデータ...
-
VBAでアクセスDBからデータの取...
-
Excel VBAでフォルダ内の全テキ...
-
【VB.NET】Excelの最終行までの...
-
C# DataTableに最後に追加した...
-
「Nullの使い方が不正です」の...
-
VBAコンボボックスの内容が反映...
-
COBOL数値転記の仕様
-
クリスタルレポートでレコード...
-
VB2010で、選択した系列を最前...
-
アクセスでウェブ上のデータを...
-
Excel VBAで1週間毎にカテゴリ...
-
非同期のプロセス間通信(パイプ...
-
エクセルのセル最終行取得
-
ActiveReportのdetailをデータ...
-
富士通(汎用機)のAIMについて
-
Excel VBAでグループ毎に集計す...
-
エクセルのCSV読み込みについて
-
AccessVBAでのExcelメモリ解放
おすすめ情報