OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Nヶ月前の1日を取得したいのですが

  • すぐに回答を!
  • 質問No.194067
  • 閲覧数147
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 79% (163/205)

今回はじめてvb6のプログラムを作成します。
処理概要は、access2000のテーブルからNヶ月前の1日以降の日付を持つデータを抽出するです。

この場合に、日付の算出はどのような記述になるのでしょうか?
算出のロジックはsqlの中に記述せずに、別エリアに編集してテーブルの項目Aと>=で比較したいのですが。

なお、テーブルの項目のデータ型はcharです。

お手数ですが、よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

Sub test()
  Dim strDmyDate As String
  
  Dim intYear   As Integer
  Dim intMonth  As Integer
  Dim intBeforMonth  As Integer
  
  Dim datDate   As String
  Dim strDate   As String
  
  'ダミーデータ
  strDmyDate = "20020107"
  
  '何ヶ月前?
  intBeforMonth = 6 'この場合6ヶ月前
  
  '年月を抽出
  intYear = Left(strDmyDate, 4)
  intMonth = Mid(strDmyDate, 5, 2)
  
  'Nヶ月前の一日を、日付型で算出
  datDate = DateSerial(intYear, intMonth - intBeforMonth, 1)
  
  'フォーマット変換
  strDate = Format(datDate, "yyyymmdd")
End Sub

見せてもらったデータからすると、strDateの値をSQL文にそのまま使用できます。
ただ、文字列なので
"select * from テーブル where 項目A >= '" & strDate &"'"
といったように シングルコーテーションを忘れないようにしてください。
お礼コメント
kiyoto

お礼率 79% (163/205)

回答ありがとうございました。
おかげさまで解決いたしました。
投稿日時 - 2002-01-09 16:03:32
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

charとありますので、データの無いよう次第でアドバイスが変わるとおもいます。 どんなデータが入っているのでしょう? (1)20020107 (2)020107 (3)2002/01/07 これ意外にも様々な格納法則が考えられます。 現在のデータを一部公開してください。 ...続きを読む
charとありますので、データの無いよう次第でアドバイスが変わるとおもいます。
どんなデータが入っているのでしょう?
(1)20020107
(2)020107
(3)2002/01/07
これ意外にも様々な格納法則が考えられます。
現在のデータを一部公開してください。
補足コメント
kiyoto

お礼率 79% (163/205)

説明不足で申し訳ありませんでした。
補足します。

データの内容は、20020107と設定されています。
基準日がが20011213の場合、2001601を算出します。
今回の処理で、基準日はシステム日付を使用します。
投稿日時 - 2002-01-07 17:52:24


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ