dポイントプレゼントキャンペーン実施中!

初めて質問させていただきます。宜しくお願いします。

アクセスで、
===フォーム上にある非連結テキストボックスに、日付を入力し、コマンドボタンをクリックすると、テーブルにある日付のデータをクリアし、その後フォーム上のテキストボックスに入力した日付を挿入===の方法を教えていただきたいと思います。

CurrentDb.Execute "DELETE * FROM T_設定日;"
CurrentDb.Execute "INSERT INTO T_設定日(設定日) VALUES ('Me![年月日]');"

上記でやってみたところ、データのクリアはされるのですが、その後、テキストボックスに入れた日付は入りません。エラーは出ません。

アクセス初心者で、分かりにくい説明と思いますが、宜しくお願いします。

A 回答 (3件)

こんばんは。

再びです。

先ほどは、]が二つついていたりしたのでそのままコピーしたらコンパイルエラーになってしまったかもしれません。ごめんなさい。
あと、"!"ではなく、"."でやってみてください。

たぶんですが、Me.と、"."までうつと、その横にぴろっとその続きに入力することができる入力候補がでてくるのではないかと思います。(この場合は、候補の中を↓ボタンでたどっていくと"年月日"というのがでてくると思います)

あと、日付型の場合は"#"を前後に設定してあげる方がよいようです。

CurrentDb.Execute "INSERT INTO T_設定日(日付) VALUES (#" & CDate(Format(Me.年月日.Value, "yyyy/mm/dd")) & "#);"

こんな感じ↑。

これを実行すると、たとえば2005/09/22とテキストボックスに指定した場合、

"INSERT INTO T_設定日(日付) VALUES (#2005/09/22#)"
というSQLが発行されます。
#というのは、ここからここまでが日付ですよと認識させてあげるものだそうです。
#ではなく、'でも動くとは思いますが、せっかくなので#で覚えたほうがよいかと思われます。
私にとってもいい勉強になりました。

もし、それでもだめだったらまた結果を教えてください。

それではよろしくお願いします。
    • good
    • 0
この回答へのお礼

yoyo h8様
大変ありがとうございました。出来ました!!
何度やっても、「Meキーワードの使用方法が不正です」が出てしまい、色々調べたところ、標準モジュールに作成していたためで、フォームモジュールに記述ところ、成功しました。
結局、自分の基本的なミスでyoyo h8様にご迷惑をおかけしました。No.3はもちろん、No.2 でも大丈夫でした。
本当にありがとうございました。

お礼日時:2005/09/22 23:54

さきほど回答したものです。


追加で補足します。

テーブルの設定日のデータ型を日付/時刻型にして、テキストボックスに、"2005/08/20"という形で日付を指定した例です。

CurrentDb.Execute "INSERT INTO T_設定日(日付) VALUES ('" & CDate(Format(Me![年月日]].Value, "yyyy/mm/dd")) & "');"

でいけると思います。
    • good
    • 0

こんにちは。



まずは1箇所。

>CurrentDb.Execute "INSERT INTO T_設定日(設定日) VALUES ('Me![年月日]');"

この書き方だと、
"INSERT INTO T_設定日(設定日) VALUES ('Me![年月日]');"

というSQL文を実行することになります。
このとき、T_設定日の設定日という項目にセットしに行く値は'Me![年月日]'という文字列を設定しにいこうとします。
それは、'(シングルクォート)でかこまれた値は文字列と認識するので、そのままのを設定しに行きます。

なので、フォームのテキストボックスに設定している値をいれたいのであれば、

"INSERT INTO T_設定日(設定日) VALUES (" & Me![年月日].Value & ");"

と変えてあげる必要があると思います。

あとは、テーブルの設定日という項目のデータ型と、入力する日付の指定方法などを考慮して、型変換が必要になるかもしれません。
(そこに関しては、質問に書かれていなかったのでこれ以上は回答できません。ごめんなさい)

では、がんばってください。

参考URL:http://www.accessclub.jp//vbakaisetu/19.html
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
分かりやすく説明していただき、シングルクォートの意味など良く分かりました。
ただ、No.1とNo.2のどちらで実行しても、
コンパイルエラー:Meキーワードの使用方法が不正です。と出てしまいます。
設定日テーブルの設定日フィールド、フォームの年月日テキストボックスの書式は、ともに日付/時刻型(日付S)になっています。
引き続き、よろしくお願いいたします。

お礼日時:2005/09/22 20:56

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