• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1つ前のレコードのフィールドをコピーするVBAについて)

VBAを使用して1つ前のレコードのフィールドをコピーする方法

このQ&Aのポイント
  • VBAを使用すると、1つ前のレコードと同じ値を持つフィールドを簡単にコピーすることができます。
  • 入力用のフォームを作成し、更新前のイベントプロシージャを使用することで、値の入力を自動化することができます。
  • 他にも、1つ前のレコードの値を参照する方法もありますが、更新前のイベントプロシージャを使用する方法が最も効果的です。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

1つ前のレコードと同じ値であれば、Ctrl+2で簡単に入力出来ますね ↑ Ctrl + 7 じゃ無かったかな?と思いましてチャチャ入れようかと しましたが出来るんですねぇ! 本題に戻りまして、規定値の変更でお望みのものに近い事が 出来るように思います。 コントロールの更新後処理に 数値型の場合 Me!コントロール名.DefaultValue = Me!コントロール名.Value 文字型の場合 Me!コントロール名.DefaultValue = """" & Me!コントロール名.Value & """" 日付時刻型の場合 Me!コントロール名.DefaultValue = "#" & Me!コントロール名.Value & "#" をデータ型に応じて適宜使い分ければ 次の新規レコードに移動した場合の規定値となります。 ということかな?

hiroi
質問者

お礼

nicotinismさん ご回答どうもありがとうございます。 なるほど、規定値の変更でしたか。本当にこれがいいと思います。感謝します。 それで、 文字型の場合 Me!コントロール名.DefaultValue = """" & Me!コントロール名.Value & """" のところで、どうして"が4つ必要なの?3つでいいのでは?そこのところをよろしくお願いします。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

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

hiroi
質問者

お礼

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

関連するQ&A