• ベストアンサー

AccessのVBAでの日付の計算の記述のしかた

AccessのVBAで日付の計算をしようとしています。 DateAdd("m",6,Date()) と入力するとコンパイルエラーになります。 どこが間違っているでしょうか。 マクロウィンドウで値の代入とかやっていたときは、これでできていた気がします。 VBAだと記述の仕方が変わるんでしょうか。 実際は、「6」とか「Date()」のところに フィールド名を入れたいのですが、それって可能でしょうか。 ものすごく初歩的な質問だとおもいますが、 回答よろしくお願いします。

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

  • ベストアンサー
回答No.2

・「テキスト1」が「6」に該当する値 ・「テキスト2」が「Date()」に該当する値 と仮定し、「ボタン1」がクリックされた時に、 ・「テキスト3」に「DateAdd("m", 6, Date())」に該当する値 を代入するとします。 補足を読むとイベント発生時のコードの書き方はご存知のようなので、 単刀直入にコードだけ記述します。 ==== Code ==== Private Sub ボタン1_Click() Me.テキスト3.Value = DateAdd("m", Me.テキスト1.Value, Me.テキスト2.Value) End Sub ==== end of Code ==== DateAdd()した値をテーブルのフィールドに反映させたいのなら、 「テキスト3」のコントロールソースを該当するフィールドにすればいいと思います。 (コントロールソースはプロパティの「データ」タブで設定します。 また、「テキスト3」を見えなくすることも可能です。)

noname#50871
質問者

お礼

ありがとうございます。うまい具合にいきました。 DateAdd関数の記述だけではダメなんですね。 同時にそれを項目に代入しないからエラーになってたようです。 レベルの低い疑問につきあっていただいて ありがとうございました。

その他の回答 (2)

回答No.3

記入漏れです。申し訳ない。 「テキスト1」「テキスト2」「テキスト3」はテキストボックスの名前 「ボタン1」はボタンの名前 です。

noname#50871
質問者

お礼

ご丁寧にどうも。 重ねてありがとうございます。

回答No.1

これだけでは何とも言えないですね。 DateAdd("m",6,Date())自体の記述には問題がありません。 これをどこに記述しているのか (クエリのフィールド?フォームの式ビルダ?フォームのコード ビルダ?) コンパイルエラーと言っているので、おそらくコード ビルダなのでしょうが、 どのようなエラーメッセージなのか、どのようなコードを書いているのか きちんと説明すべきですね。

noname#50871
質問者

補足

早速ありがとうございます。説明不足ですみません。 フォームの中にコマンドボタンを設定して、 それのイベントのクリック時のところでコードを記述してます。 DateAdd("m",6,Date())と記述して他の行に移ろうとすると、 「コンパイルエラー」と表示され、記述した行の文字が赤くなります。 それと、私が最初の質問で<実際は、「6」とか「Date()」のところにフィールド名を入れたい・・・>としていましたが、 フィールド名ではなく、フォームのテキストボックス名の間違いでした。 最初にテキストボックス名を入れてやってみたところ、コンパイルエラーが出ました。 テキストボックスの記述の仕方がおかしいのかもしれないと思い、 まず試しにDateAdd("m",6,Date())とシンプルな記述にしてみたのです。 うまく説明ができていないかもしれませんが、 よろしければ再度回答お願いします。

関連するQ&A

専門家に質問してみよう