- ベストアンサー
VBAを使用して1つ前のレコードのフィールドをコピーする方法
- VBAを使用すると、1つ前のレコードと同じ値を持つフィールドを簡単にコピーすることができます。
- 入力用のフォームを作成し、更新前のイベントプロシージャを使用することで、値の入力を自動化することができます。
- 他にも、1つ前のレコードの値を参照する方法もありますが、更新前のイベントプロシージャを使用する方法が最も効果的です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1つ前のレコードと同じ値であれば、Ctrl+2で簡単に入力出来ますね ↑ Ctrl + 7 じゃ無かったかな?と思いましてチャチャ入れようかと しましたが出来るんですねぇ! 本題に戻りまして、規定値の変更でお望みのものに近い事が 出来るように思います。 コントロールの更新後処理に 数値型の場合 Me!コントロール名.DefaultValue = Me!コントロール名.Value 文字型の場合 Me!コントロール名.DefaultValue = """" & Me!コントロール名.Value & """" 日付時刻型の場合 Me!コントロール名.DefaultValue = "#" & Me!コントロール名.Value & "#" をデータ型に応じて適宜使い分ければ 次の新規レコードに移動した場合の規定値となります。 ということかな?
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
" 3個で動きました? 当方Access2002 と Access97です。 経験上、4個でないと動かない・・としか分かりません。 どうも、" そのものを渡すためには、""2個必要でこれをさらに""で括ってやらないとダメのようです。 余談ですが Me!コントロール名.DefaultValue = Chr(34) & Me!コントロール名.Value & Chr(34) と、" の文字コードを直接送ってもよいですね。 また Me!コントロール名.DefaultValue = "'" & Me!コントロール名.Value & "'" でも大丈夫?のようです。
お礼
nicotinismさん ご回答ありがとうございます。 3個でやってみたら、「 & Me!コントロール名.Value & 」という文字列そのままが表示されました。つまり、コマンドではなく文字列にするという意味なんですね。だから4個必要ということなんですね。また、"'"でも正常に動きました。本当にありがとうございました。
お礼
nicotinismさん ご回答どうもありがとうございます。 なるほど、規定値の変更でしたか。本当にこれがいいと思います。感謝します。 それで、 文字型の場合 Me!コントロール名.DefaultValue = """" & Me!コントロール名.Value & """" のところで、どうして"が4つ必要なの?3つでいいのでは?そこのところをよろしくお願いします。