• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS 日付の比較)

日付の比較によるエラーチェック

このQ&Aのポイント
  • 日付の比較により、将来の日付が指定された場合にエラーを出す機能がうまく動作しません。
  • 日付を文字列として取得し、日付の形式に合わせて比較する処理が必要です。
  • 指定された日付が未来の日付である場合、エラーメッセージを表示して処理を終了する必要があります。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

Format関数の使い方が間違っています >(Format(strFromTime, yyyy / mm / dd) テキスト型の第1項目に対しy,m,dは使えません。構文も間違っています 文字列を比較したいのであれば単純に If strFromTime > strToTime Then でいいのでは 日付時刻型で比較するのなら If DAteValue(strFromTime) > DateValue(strToTime) Then

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

シリアル値で比較してもエラーがあがりますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 日付型のテキストボックスに数値を入れて日付にしたい

    アクセスのフォームの上にテキストボックスがあり、 書式はyyyy/mm/dd(aaa)になっています。 日付型の値を入力した際は問題ないのですが 例えば、20130720と入力したら、 このフィールドに入力した値が正しくありません。 例えば、数値型のフィールドに文字列を入力しました。 となります。 なので、 Private Sub 日付_BeforeUpdate(Cancel As Integer) If Len(Me.ActiveControl.Value) = 8 Then Me.ActiveControl.Value = Format(Me.ActiveControl.Value, "yyyy/mm/dd") End If End Sub としてみたのですが、 更新前処理イベントが発動する前に、 「このフィールドに入力した値が正しくありません。 例えば、数値型のフィールドに文字列を入力しました。」 のエラーが出てしまうようです。 20130720の形の日付を入れても自動で日付型に変換するの方法はありますか?

  • ifでの条件分岐

    .net vb2005でプログラミングしています。 2つのテキストボックスがあり、その名前をtextbox1,textbox2 , 変数の代入をtx1、tx2とします。 どちらも半角数字で300までしか入力できません。 さらに、tx1に入力されるとtx2も必ず入力される必要があります。 tx1が未入力の場合はtx2も未入力である必要があります。 最初にtx1の文字数が0か確認し、入っている場合、居ない場合と ifで条件分岐させましたが うまくいきません。。 アドバイスいただきたいと思います。 Dim tx1,tex2 As Integer If Len(TextBox1.Text) = 0 Then flg = 0 ElseIf Regex.IsMatch(TextBox1.Text, "^[0-9]{1,3}$") Then tx1= Val(TextBox1.Text) tx1 = Convert.ToInt32(iptx5) '文字列をInteger型(数字型)に変換 Else MsgBox("300までの数字で入力して下さい", vbCritical, "入力エラー") TextBox1.Clear() Exit Sub End If If tx1 > 255 Then flg = 1 MsgBox(ipm_msg2, vbCritical, "入力エラー") TextBox1.Clear() End If '********************************************************************** If Len(TextBox1.Text) = 0 Then flg = 0 exit sub ElseIf Regex.IsMatch(TextBox2.Text, "^[0-9]{1,3}$") Then tx2 = Val(TextBox2.Text) tx2 = Convert.ToInt32(tex2) Else MsgBox(ipm_msg1, vbCritical, "入力エラー") TextBox2.Clear() Exit Sub End If '**255以上なら入力不可** If iptx6 > 255 Then flg = 1 MsgBox(ipm_msg2, vbCritical, "入力エラー") TextBox6.Clear() Exit Sub End If

  • ACCESSの日付形式

    テーブルに日付形式のフィールドがあり、エクスポートすると、形式がyyyy/mm/dd hh:mm:ddになってしまいます。 yyyy/mm/dd形式でエクスポートするには、どのようにしたらよいでしょうか。 VBAのDocmd.TransferTextで行いたいと思います ちなみにAccess97です。 よろしくお願いします

  • DTPickerで入力したらの検索が出来なくなりました。

    お世話になります。 質問ですが 以下のVBAコードがあります。Sheet3のCells(2, 6)に記入した日付によってSheet1の検索を一部行うのですが、Cells(2, 6)への入力をDTPickerを使って行うようにしたら該当する日付がありませんのエラーが帰ってきます。たぶん書式が違うせいかなと思うのですがどうすればいいのでしょうか? どなたか分かる方いらっしゃいますか?よろしくお願いします。  Private Sub CommandButton1_Click() Dim trgA As Variant, trgB As Variant With Worksheets("Sheet3") If IsEmpty(.Cells(2, 7)) Then MsgBox "個数が空です。", vbCritical: Exit Sub '日付 trgA = Application.Match(.Cells(2, 6).Value2, Worksheets("Sheet1").Range("A:A"), 0) If IsError(trgA) Then MsgBox "該当する日付がありません。", vbCritical: Exit Sub '製品名 trgB = Application.Match(.Cells(2, 4).Value, Worksheets("Sheet1").Range("2:2"), 0) If IsError(trgB) Then MsgBox "該当する製品名がありません。", vbCritical: Exit Sub If Worksheets("Sheet1").Cells(trgA, trgB + 1).Value = "" Then Worksheets("Sheet1").Cells(trgA, trgB + 1).Value = .Cells(2, 7).Value Else If MsgBox("上書きしますか", vbQuestion + vbOKCancel) = vbOK Then Worksheets("Sheet1").Cells(trgA, trgB + 1).Value = .Cells(2, 7).Value End If End If End With End Sub

  • クリスタルレポートの式フィールドで日付変換。

    クリスタルレポート8の式フィールドで日付を表示させようと思っています。 標準では『YYYY/MM/DD』形式なのですがこれを『YYYY-MM-DD』で表示させたいのですがうまくいきません。 式フィールドには if A ="1" then formula = CurrentDate と記述しています。 Aの値が"1"ならば日付を表示です。 説明が下手で分かりづらいかもしれませんが、 補足しますのでヨロシクお願いします。

  • Accessフォームの作成

    Accessで作成されているシステムの ファイル取り込みフォームにある実行ボタンを押下すると、 下記のメッセージが表示されます。 「select case に対応する case がみつからない。」 どこかで指定しないといけないのでしょうか? Private Sub Cmd実行_Click() On Error GoTo Err Dim StrSql As String Dim IntNDCnt As Integer Dim IntNTCnt As Integer '確認メッセージの出力 If MsgBox("処理を開始します。よろしいですか?", vbInformation + vbYesNo, "データ取込処理") = vbNo Then Exit Sub End If '対象データ別の処理実行 Select Case Me.Cmb対象.ListIndex Case -1 'エラー MsgBox "読込むデータを指定してください", vbCritical, "データ取込処理" Exit Sub Case 0 '全データ If F_手数料明細読込() = False Then Exit Sub End If If F_奨励金読込() = False Then Exit Sub End If If F_減額読込() = False Then Exit Sub End If If F_預り金読込() = False Then Exit Sub End If Case 1 '手数料データ If F_手数料明細読込() = False Then Exit Sub End If Case 2 '奨励金データ If F_奨励金読込() = False Then Exit Sub End If Case 3 '減額データ If F_減額読込() = False Then Exit Sub Case 4 '預り金データ If F_預り金読込() = False Then Exit Sub End If End Select 今は、Case 4が黄色に反転します。

  • ACCESSの式の意味

    近日初めてアクセスVBAを勉強し始めた者です。まだコードが読めないのでそれぞれの言葉の意味から始めています。 以下のコードの4点について意味を教えてください。 'バリデーションチェック If Me.TXT_FileName & "" = "" Then MsgBox "ファイル名を指定してください", vbCritical Exit Sub End If 一点目、 & "" = "" 二点目、vbCritical 三点目、Sub 四点目、 End If ←ifから始めた文は毎回end ifで終わる必要があるのでしょうか。 レベル低いですが困っています。宜しくお願いします。

    • ベストアンサー
    • CSS
  • エクセルで日付と時間を自動入力する

    エクセルでF13~P13に何か入力したら、その下のセルの F14~P14に日付と時間が自動入力される という質問、回答を見つけました。 これで日付を削除するかどうかのメッセージボックスを出さずに 入力するセルのデータを削除した時に日付も削除するには どの部分を削除すれば良いですか? Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim mRng As Range Application.EnableEvents = False For Each mRng In Target If Not Intersect(mRng, Range("F13:P13")) Is Nothing Then If mRng.Value = "" Then If MsgBox("日付も削除しますか?", vbYesNo + vbDefaultButton2) = vbYes Then mRng.Offset(1, 0).Value = "" End If Else mRng.Offset(1, 0).Value = Format(Now, "yyyy/mm/dd"" ""hh:mm:ss") End If End If Next mRng Application.EnableEvents = True End Sub

  • アクセスの印刷VBAを教えて下さい

    アクセス初心者です。 バージョンは2002を使っています。 ネットで探して詳しく分からないままプログラムしています。 フォームで印刷のコマンドボタンを作ってそのボタンをクリックすると表示されてる 1ページのみ印刷したいのですが全てのレコードが印刷されてしまいます。 どうすればいいのか教えて下さい。 下記が今現在のVBAです。 Private Sub 印刷_Click() Dim varCopies As Variant varCopies = InputBox("部数を数字で入力してください", "印刷部数の指定") If Len(varCopies) = 0 Then Exit Sub End If If IsNumeric(varCopies) = False Then MsgBox "部数は数字で入力してください", vbOKOnly + vbCritical, "入力エラー" Exit Sub ElseIf CLng(varCopies) = 0 Then MsgBox "部数は0以上で入力してください", vbOKOnly + vbCritical, "入力エラー" Exit Sub End If If MsgBox("印刷しますか?" & vbCrLf & "部数=" & varCopies _ , vbYesNo + vbInformation, "印刷の確認") = vbYes Then DoCmd.OpenForm "伝票", acPreview, , , acFormReadOnly DoCmd.PrintOut acPrintAll, , , , CLng(varCopies) DoCmd.Close acForm, "伝票" End If End Sub

  • 以下のVBAについて

    Option Compare Database Option Explicit Private Sub バックアップ開始_Click() Dim strBaseName As String Dim strFileName As String If IsNull(Me.バックアップ日付) = True Or Len(Me.バックアップ日付) = 0 Then MsgBox "バックアップ日付をyyyymmdd形式で入力してください。", vbOKOnly + vbCritical, "" Me.バックアップ日付.SetFocus Exit Sub End If strBaseName = "C:\Data\在庫管理.mdb" strFileName = "C:\Backup\" & Format(Me.日付, "yyyymmdd") & "StockData.mdb" If Dir(strFileName) <> "" Then If MsgBox(strFileName & Chr(13) & "は存在します。" & Chr(13) & _ "上書しますか?", vbYesNo + vbQuestion, "") = vbNo Then Exit Sub End If End If On Error GoTo LBL_ERROR FileCopy strBaseName, strFileName MsgBox "バックアップが完了しました。", vbInformation, "" LBL_EXIT: Exit Sub LBL_ERROR: Resume LBL_EXIT End Sub 上記のVBAでバックアップを行いたいのですが、フォルダ等も設定しているの実行されません。上記の文に間違いがあるのでしょうか? ソフトはAccessです。

このQ&Aのポイント
  • 印刷結果が良くないです。特に白黒印刷。網掛けの灰色など色むらがすごいです。これはもう処分するレベルでしょうか?まだトナーは沢山あります。
  • 印刷結果が悪く、特に白黒印刷で網掛けの灰色や色むらが目立ちます。現在のトナーの状態や処分の有無について知りたいです。
  • HL-3170CDWでの印刷結果が良くなく、特に白黒印刷で網掛けの灰色や色むらが多く出ています。処分するべきかどうか、トナーの在庫状況についても教えてください。
回答を見る

専門家に質問してみよう