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

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

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

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

お手数ですが、よろしくお願いします。

A 回答 (2件)

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 &"'"
といったように シングルコーテーションを忘れないようにしてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
おかげさまで解決いたしました。

お礼日時:2002/01/09 16:03

charとありますので、データの無いよう次第でアドバイスが変わるとおもいます。


どんなデータが入っているのでしょう?
(1)20020107
(2)020107
(3)2002/01/07
これ意外にも様々な格納法則が考えられます。
現在のデータを一部公開してください。

この回答への補足

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

データの内容は、20020107と設定されています。
基準日がが20011213の場合、2001601を算出します。
今回の処理で、基準日はシステム日付を使用します。

補足日時:2002/01/07 17:52
    • good
    • 0

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