• ベストアンサー

アクセスでテキストボックスの値が空白だったら

お世話になっております。 フォームのテキストボックスの値が0か空白だったら、レポート上に表示されるものを変えたいのですが、うまくいきません。 If [Forms]![フォーム1]![テキストボックス1].value = 0 Or [Forms]![フォーム1]![テキストボックス1].value = "" Then Me![レポート上のテキストボックス] = "無" Else [Forms]![フォーム1]![レポート上のテキストボックス1] = [Forms]![フォーム1]![テキストボックス1] & "ヶ月" End If これだと何も入っていないときに"ヶ月"と表示されてしまいます。どのように書けばよいのでしょうか? ご教授願えませんでしょうか?

  • q-tip
  • お礼率77% (116/149)

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 未入力を、「=""」という条件ではなく、IsNull関数で調べてはどうでしょうか? If [Forms]![フォーム1]![テキストボックス1].value = 0 Or IsNull([Forms]![フォーム1]![テキストボックス1].value) Then

q-tip
質問者

お礼

早い回答ありがとうございます。 上記でうまくいきました。 4時間くらい悩んでました。 本当にありがとうございました。

その他の回答 (1)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

何も入っていないというのは、たぶんNullの状態だと思いますので、 その場合は、IsNull 関数を使って判断します。 空文字("") の判断も必要であれば、Nz 関数の方がやりやすいですね。 If Nz(Forms![フォーム1]![テキストボックス1],"") = "" Or _  Forms![フォーム1]![テキストボックス1] = 0 Then   Me![レポート上のテキストボックス] = "無" Else のように変更してみてください。

q-tip
質問者

お礼

早い回答ありがとうございました。 これだと、テキストボックスに値を入れても"無"表示がされてしまいました。 Isnullでうまくいきました。 本当にありがとうございました。

関連するQ&A

  • テキストボックスなら空白にする

    フォームにテキストボックス2つとコンボボックス2つを設置して、 規定値に値を設定し、 Private Sub cb_テキストボックスなら空白にする_Click() Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then ctl.Value = Empty End If Next ctl End Sub としたのですが何も起こりません。 空白にするにはどうすればいいでしょうか? あと、 ctl.Valueと打つ時に、 ドットの後に、Valueが一覧に出てきませんでした。 それが原因で空白にならないのでしょうか? ご回答よろしくお願いします。

  • フォームのテキストボックスの値が空白の時

    現在 フォームのテキストボックスに入れた値をレポートのテキストボックスに表現していますが 例えば フォームのテキストボックスの値 を1とした時 レポートの値 1月分 と表示しています フォームのテキストボックス値が空白の時にレポートの値も 空白にしたいのです 現在のままですと 月分 の文字だけが残ってしまいます 何方かご指南ください 使用環境は Windows10 Office2019です よろしくお願い致します

  • フォームのテキストボックスが空白なら"*"を入力する

    「フォームのテキストボックスが空白なら"*"を入力する」 としたいのですが If Form.承認者テキスト.Value = "" Then Form.承認者テキト.Value = "*" だと承認者テキストでも"*"が入力されません。 Form.承認者テキスト.Value = Null としてもできません。どうすればいいのでしょうか? よろしくお願いします。

  • 「Form_フォーム1.テキスト1.Value = "" 」がうまくいかない。

    VBAについての質問です。(オフィス2003) フォーム1にテキストボックス1を作成しました。 Module1に Sub test() If Form_フォーム1.テキスト1.Value = "" Then MsgBox "空白です" End If End Sub とコードを書き、テキストボックス1を空白の状態でtestを実行しても何も起こりません。 F8で一行づつ実行してみてみたら Form_フォーム1.テキスト1.Valueのところにカーソルを当てると Form_フォーム1.テキスト1.Value=Nullとなります。 どうすればテキストボックス1が空白なら「空白です」と表示させることが可能でしょうか? よろしくお願いします。

  • たくさんのテキストボックスを制御する算段について

    フォーム上にテキストボックスをエクセルのシートのように並べて、月の日付の一覧を表示し、そこに項目があります。 項目をダブルクリックすると○と空白を交互に入れ換えたいのです。 下のようなイメージです。ちょうど勤務表のようなイメージでしょうか。     1 2 3 4 …     月 火 水 木 … 項目A ○   ○   ←ここにはテキストボックスが31個隙間なく並んでいる→ 項目B   ○ で、そのソースは下のようにしたのです。 Private Sub A01_DblClick(Cancel As Integer) If A01.Enabled <> False Then If IsNull(Trim(A01.Value)) Or Trim(A01.Value) = "" Then A01.Value = "○" Else A01.Value = "" End If End If End Sub が、これですとテキストボックスの数分だけこの記述をしなければならず、余り賢いやり方だとは思えないのです。 何か、算段があれば、ヒントだけでもご提示していただければ幸いです。 宜しくお願いいたします。

  • (ACCESS)条件に応じて、テキストボックスを表示・非表示設定

    (ACCESS)条件に応じて、テキストボックスを表示・非表示設定 フォーム上のテキストボックスAを条件に応じて表示・非表示にさせたいです。 条件は、サブフォームのテキストボックスBに「支払」を言う文字があれば、 テキストボックスAが表示され、なければ非表示にする方法が探しています。 わからないなりに調べて、多分以下の文章になると思いますが、「?」の条件式がうまくいきません Private Sub AA_GotFocus() If  ????? Then Me!テキストボックスA.Visible = False Else Me!テキストボックスA.Visible = True End If End Sub どなたか教えてください。 宜しくお願い致します。

  • Accessのリストボックスの値を使って

    自分なりに色々と調べたのですが、どうしても希望の動作になりません。どの様にすれば良いのか教えて頂けないでしょうか? Access2003を使用しております。 Form-A(フォーム名) ・・・訪問日 次回訪問日 期間 という項目があり、[期間](データは、1ヶ月;1年の2つです。)がリストボックスになっており、1ヶ月を選択すると[訪問日]の1ヶ月後、1年を選択すると[訪問日]の1年後を[次回訪問日]に表示したいと思っています。 現在、[期間]の更新後処理イベントプロシージャに下記のを記述しているのですが、リストボックス内のデータ1ヶ月、1年のどちらを選択しても1ヶ月後の日付しか表示されない状態です。 どうぞよろしくお願い致します。 Private Sub 期間_AfterUpdate() If IsNull(Me!期間) = True Then Me!次回訪問日 = "" Else If Me!期間 = Me!期間.Column(0) Then Me!次回訪問日 = DateAdd("m", 1, Me!訪問日) Else If Me!期間 = Me!期間.Column(1) Then Me!次回訪問日 = DateAdd("yyyy", 1, Me!訪問日) End If End If End If End Sub

  • テキストボックスからコンボボックスへ自動入力したい

    AccessVBA初心者です。 Access2003を使用しています。 formAフォーム上の非連結textBテキストボックスに英字を入力 して、exe実行ボタンをクリックしたら、Cテーブルに連結した cmbCコンボボックスに該当文字列を表示したいです。 Private Sub exe_Click() If Me.textB.Value = "A" Then Me.cmbC.Value = 1 Else Me.cmbC.Value = 2 End If End Sub 実行ボタンをクリックしても、コンボボックスの内容は変わり ません。 if文にブレークポイントを設定してステップインで一行ずつ実 行するとコンボボックスに数字にあった文字列が表示できます。 うまく表示できるように、よろしくお願い致します。

  • ユーザーフォームのテキストボックスでVLOOK

    ユーザーフォームのテキストボックスで、ご教示お願いいたします。 現在、以下のようなコードこちらで教えていただきセルに入力をしております。 上から順番に入力した際、テキストボックス5に値を入たら、 listのシートから該当するもの(項目は20個)をテキストボックス6に表示させたいと思っております。 ■現在のコード '// Private Sub CommandButton1_Click() Dim LastRow As Long 'ここはキャメル形式やパスカル形式にします/大文字は定数です。 Dim i As Long '/テキストボックスに値があるか調べる For i = 1 To 7 Next i '/セルに書き込み With Worksheets("Sheet1") LastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 For i = 1 To 7 .Cells(LastRow, i).Value = Me.Controls("TextBox" & i).Value Next End With '/TextBox1-7をクリア If MsgBox("テキストボックスを空にしてよろしいですか?", vbQuestion + vbYesNo) = vbYes Then For i = 1 To 7 Me.Controls("TextBox" & i).Value = "" Next i End If 'TextBox1にフォーカスを移動 Me.TextBox1.SetFocus End Sub ■付け足したいコード Private Sub textbox5_change() Dim temp, x temp = Me.textBox5.Value If IsNumeric(temp) Then temp = Val(temp) x = Application.VLookUp(temp, Sheets("list").Range("a1:b20"), 2, False) If Not IsError(x) Then Me.TextBox6.Value = x Else MsgBox Me.TextBox5.Value & " はリストにありません" End If End Sub 【質問内容】 付け足したいコードは上記の通りですが、どのように付け足せばいいのかが分からず、 困っております。 度々で申し訳ありませんが、テキストボックス5の値を見て、 テキストボックス6に表示させるやり方をご教示お願いいたします。

  • 空白ならば vba エラーになる IsNull

    If IsNull(Forms("フォーム").Cntrols("年度別").Value) = True Then End If このコードは何がおかしいですか? 実行時エラー2465になってしまいます。 コントロールが空白なら文字を入れて、空白じゃないなら mystr = Forms("フォーム").Cntrols("年度別").Value のようにして、コントロールの値を変数に格納したいのですが、 エラーになる原因がわかりません。

専門家に質問してみよう