VB6.0で開発しています。
DBに時刻の列名「YEARMONTHDAY」「HOUR」(1~24)がNUMBER型として入っています。
DBより取得した「YEARMONTHDAY」と「HOUR」で日付の差を求めたいのですが,
HOURに24の値がきた際,DATE型の範囲以上の為エラーになってしまいます。
なにか日付の差を求める良い方法があればご教授下さい。
(例)
Dim pdtm_RecTime As Date
Dim str_wk As String
'// EOFまでループ
Do Until objDynaset.EOF
'// 記録日取得
str_wk = Format$(CStr(YEARMONTHDAY.Value) & Format(CStr(HOUR.value), "00") & "00", "0000/00/00 00:00")
pdtm_RecTime = CDate(str_wk)
________________________________________________________________________________
上記のPGだとHOURが24の場合にDateの範囲を超える為エラーになる。
'// 日付差チェック
pVar_Diff = DateDiff("h", DateAdd("h", pInt_Hour, gDtm_GrpSDate), pdtm_RecTime)
'// データがまだ存在する場合次のレコードに移動
If (objDynaset.EOF = False) Then
objDynaset.MoveNext
End If
pInt_Hour = pInt_Hour + 1
Loop
No.1
- 回答日時:
HOUR=24が「次の日の0時」を表すなら、
案a) HOUR=24の時は0とみなし、1日分DateAdd
案b) HOURから-1したもので時刻を組み立て、1時間をDateAddで追加
――とか。
No.2ベストアンサー
- 回答日時:
>str_wk = Format$(CStr(YEARMONTHDAY.Value) & Format(CStr(Hour.Value), "00") & "00", "0000/00/00 00:00")
日付/時間書式で文字列を作る
pdtm_RecTime = CDate(str_wk)
それを、日付時刻型に変換
⇒結果[落ちる]
のであれば
str_wk = Format$(CStr(YEARMONTHDAY.Value), "0000/00/00")
日付で文字列を作る
pdtm_RecTime = CDate(str_wk)
それを、日付時刻型に変換
pdtm_RecTime = DateAdd("H", Hour.Value, pdtm_RecTime)
それに時間を追加
してあげたら、単に24時間を足してくれると思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- 英語 提示した名言の文の構造について(waste one hour of time) 5 2023/05/20 15:22
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日より前の書き方 マクロ
-
エクセルのVBAで日付を検索し転...
-
Eclipseの対応する括弧の強調表...
-
JSPからYYYYMMDDで日付入力する
-
3人のじゃんけんのプログラム
-
ユーザーフォームのラベルに日...
-
コンボボックスの値を日付とし...
-
VisualBasic6.0のFormat関数で...
-
VB.NET 日付設定
-
DataGridViewでyyyy/MM/dd
-
C#で日付をdateTimePickerに読...
-
DateTimePickerを西暦表示にす...
-
VBAで日付入力しているのですが
-
VB 日付範囲チェック
-
エクセルVBAで機械の稼働時間を...
-
VBでDate型の大小比較がうまく...
-
最近、iPhoneがおかしいです 私...
-
アンドロイドから通知無しで鳴る音
-
電話の着信が来てないのに着信...
-
Creative Cloud Desktopを更新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
ユーザーフォームのラベルに日...
-
VBAの質問になります 行の非表示
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
DataGridViewでyyyy/MM/dd
-
3人のじゃんけんのプログラム
-
システム日付とは?
-
コンボボックスに日付を表示する
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
エクセルVBAで機械の稼働時間を...
-
VBA 日付、未来の日付はエラー...
-
VBAで当月の1日を表示するには...
-
DataGridViewの和暦表示について
-
「eclipseで作るカレンダー(ス...
-
テキストボックスにカレンダー...
-
ExcelVBAでSQLサーバの日付時刻...
-
【Excel VBA】条件に合った行の...
-
VBAのapplication.ontime メソ...
おすすめ情報