- ベストアンサー
Nヶ月前の1日を取得したいのですが
今回はじめてvb6のプログラムを作成します。 処理概要は、access2000のテーブルからNヶ月前の1日以降の日付を持つデータを抽出するです。 この場合に、日付の算出はどのような記述になるのでしょうか? 算出のロジックはsqlの中に記述せずに、別エリアに編集してテーブルの項目Aと>=で比較したいのですが。 なお、テーブルの項目のデータ型はcharです。 お手数ですが、よろしくお願いします。
- みんなの回答 (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 &"'" といったように シングルコーテーションを忘れないようにしてください。
その他の回答 (1)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
charとありますので、データの無いよう次第でアドバイスが変わるとおもいます。 どんなデータが入っているのでしょう? (1)20020107 (2)020107 (3)2002/01/07 これ意外にも様々な格納法則が考えられます。 現在のデータを一部公開してください。
補足
説明不足で申し訳ありませんでした。 補足します。 データの内容は、20020107と設定されています。 基準日がが20011213の場合、2001601を算出します。 今回の処理で、基準日はシステム日付を使用します。
お礼
回答ありがとうございました。 おかげさまで解決いたしました。