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

あるフィールドに入力する時、1つ前のレコードと同じ値であれば、Ctrl+2で簡単に入力出来ますね。

それで、更に入力の手間を省くために、これもVBAで自動化しようと思ったのですが、はてどうしたらと行き詰まってしまいました。

入力用のフォームを作っておいて、いくつかのフィールドに入力するテキストボックスをいくつか作って、そのうち1つはほとんど同じ値を持つとすれば、このフォームの更新前のイベントプロシージャが適切かと思います。このフォームに入力しようとしたら、即座にほとんど決まった値を持つフィールドに、1つ前のレコードの値が入るというようなコードになるかと思います。そのコードの1例を教えて頂けますか?また、他のいい方法はあるのでしょうか?

以上、よろしくお願い致します。

A 回答 (2件)

1つ前のレコードと同じ値であれば、Ctrl+2で簡単に入力出来ますね


↑ Ctrl + 7 じゃ無かったかな?と思いましてチャチャ入れようかと
しましたが出来るんですねぇ!

本題に戻りまして、規定値の変更でお望みのものに近い事が
出来るように思います。

コントロールの更新後処理に
数値型の場合
Me!コントロール名.DefaultValue = Me!コントロール名.Value

文字型の場合
Me!コントロール名.DefaultValue = """" & Me!コントロール名.Value & """"

日付時刻型の場合
Me!コントロール名.DefaultValue = "#" & Me!コントロール名.Value & "#"

をデータ型に応じて適宜使い分ければ
次の新規レコードに移動した場合の規定値となります。
ということかな?
    • good
    • 1
この回答へのお礼

nicotinismさん

ご回答どうもありがとうございます。
なるほど、規定値の変更でしたか。本当にこれがいいと思います。感謝します。

それで、
文字型の場合
Me!コントロール名.DefaultValue = """" & Me!コントロール名.Value & """"

のところで、どうして"が4つ必要なの?3つでいいのでは?そこのところをよろしくお願いします。

お礼日時:2006/06/28 14:37

" 3個で動きました?


当方Access2002 と Access97です。
経験上、4個でないと動かない・・としか分かりません。
どうも、" そのものを渡すためには、""2個必要でこれをさらに""で括ってやらないとダメのようです。
余談ですが
Me!コントロール名.DefaultValue = Chr(34) & Me!コントロール名.Value & Chr(34)
と、" の文字コードを直接送ってもよいですね。
また
Me!コントロール名.DefaultValue = "'" & Me!コントロール名.Value & "'"
でも大丈夫?のようです。
    • good
    • 0
この回答へのお礼

nicotinismさん
ご回答ありがとうございます。
3個でやってみたら、「 & Me!コントロール名.Value & 」という文字列そのままが表示されました。つまり、コマンドではなく文字列にするという意味なんですね。だから4個必要ということなんですね。また、"'"でも正常に動きました。本当にありがとうございました。

お礼日時:2006/10/20 22:29

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A