公式アカウントからの投稿が始まります

ACCESSVBAで既存のクエリの日付フィールドの書式をyyyymmに変更したいですが、
コードをどう書けばいいですか?

クエリ:Q01_2_実績準備
フィールド:完了予定日(yyyy/mm/dd)

希望:完了予定日(yyyy/mm/dd)→完了予定日(yyyymm)にしたいです。

宜しくお願いします。

A 回答 (3件)

No.1です。



つまりVBAでSQLを指定しているのですよね?
そのSQLにFormat関数を仕込みましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
おっしゃった通りVBAに以下のようにFormat関数を
組んで解決しました。

DoCmd.RunSQL "DELETE FROM T01_実績準備"
DoCmd.RunSQL "SELECT * INTO T01_実績準備 FROM Q01_2_実績準備"

Set db = CurrentDb
Set rs = db.OpenRecordset("T01_実績準備")

With rs
Do Until .EOF
.Edit
!完了予定日 = Format(!完了予定日, "YYYYMM")
.Update
.MoveNext
Loop
.Close
End With

Set rs = Nothing
Set db = Nothing

助かりました:)

お礼日時:2016/04/21 09:55

作成されているクエリを変更したいのであれば、このような方法で変更できます。


http://tsware.jp/tips/tips_082.htm

>クエリ「Q01_2_実績準備」はvbaで作成されますので、
> 作成される度に書式設定しなけばならないから、
Q01_2_実績準備を作成するときにNo.1の方の方法で作成すればいいのでは?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

DoCmd.RunSQL "DELETE FROM T01_実績準備"
DoCmd.RunSQL "SELECT * INTO T01_実績準備 FROM Q01_2_実績準備"

Set db = CurrentDb
Set rs = db.OpenRecordset("T01_実績準備")

With rs
Do Until .EOF
.Edit
!完了予定日 = Format(!完了予定日, "YYYYMM")
.Update
.MoveNext
Loop
.Close
End With

Set rs = Nothing
Set db = Nothing

これで解決できました:)

お礼日時:2016/04/21 09:52

VBAというか、クエリの中でFormat関数でできますよ。


Format([完了予定日],"yyyymm")
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
クエリ「Q01_2_実績準備」はvbaで作成されますので、
作成される度に書式設定しなけばならないから、
プログラムで組みたいです。

お礼日時:2016/04/20 14:35

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