プロが教える店舗&オフィスのセキュリティ対策術

ACCESSフォーム内のテキストボックスが空欄かどうかで条件分岐させる方法を教えてください。

フォーム内に複数テキストボックスがあります。
テキスト1
テキスト2
テキスト3

このテキストボックスの入力があるかどうかで、
エクスポートするクエリを変更したいです。

それぞれのテキストボックスの入力値は、
対応するクエリの抽出条件になっています。

少なくとも、テキスト1には入力があるという条件で、
・テキスト2が空白なら、クエリ2を出力する
・テキスト3が空白なら、クエリ3を出力する
という処理を行いたいのです。


マクロビルダーで、IFを使った処理は作ることができたのですが、
VBAを使って、同じ処理ができるようにしたいです。

どうかご教授のほど、よろしくお願いします。

A 回答 (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なりに出力するということでいいのでしょうか?
それとも・・・・・・・直接・・・・・・・?いや何でもありません。
    • good
    • 0
この回答へのお礼

お礼が遅くなりましてすいませんでした。

やりたかった通りのコードをいただき、ありがとうございます。
とても助かりました。

ちなみに、選んだクエリは直接excel出力するつもりで、
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "クエリ1"
みたいな感じにしようと思っています。

この度は、どうもありがとうございました。

お礼日時:2013/06/14 22:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!