Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Microsoft 365)
新しいレコード(Form)に、指定したレコード内容を表示
投稿日時: 22/04/14 15:29:52
投稿者: jimusyo

お世話になります。
 
 検索したデータを表形式のフォームに一覧で表示しております。
 あるテキストをクリックしたら、別フォーム(F_データ登録)を
 新しいレコードで開き、そこに参照(クリック)した該当のレコード内容
 を表示させたい(簡単に言えばコピー)のですが、
 1つ1つを下記のように今指定しているのですが、もっと簡単にできたりしますでしょうか。
 
 1.データ一覧が表示されている。(表形式フォーム)
 
 2.一覧よりクリック時のイベントで、クリックされたデータを読み込む。
 
 3.新しい登録フォーム(F_データ登録)を、新規レコードの状態で開く
 
 4.2で読み込んだレコード内容を
   3のテキストボックスへ入れ込んでいる。
   Forms!F_登録!依頼者 = RS!依頼者 ※RSはレコードセット
   と1つづつ指定している。
 
 4番の作業がそれなりに項目があるので、簡単にできますでしょうか。
 
よろしくお願いします。 
 
 

回答
投稿日時: 22/04/14 15:42:11
投稿者: Suzu

引用:
   Forms!F_登録!依頼者 = RS!依頼者 ※RSはレコードセット
   と1つづつ指定している。
  
 4番の作業がそれなりに項目があるので、簡単にできますでしょうか。

 
ひとつづつ が 確実だとは思います。
 
 
1. 代入したいコントロールの タグプロパティ に適当にフラグを入れておきます。
  なんでも良いです。今回は、「1」とします。
 
2. コードとしては
  
  Dim ctl As Control
 
  For Each ctl In Forms("フォーム名").Controls
    If ctl.Tag = "1" Then
      ctl.vlue = rs.Fields(ctl.ControlSource).Value
    Next
  Next ctl
 
 の様な感じで良いかと。

回答
投稿日時: 22/04/14 16:19:26
投稿者: よろずや

jimusyo さんの引用:

 4.2で読み込んだレコード内容を
   3のテキストボックスへ入れ込んでいる。
   Forms!F_登録!依頼者 = RS!依頼者 ※RSはレコードセット
   と1つづつ指定している。
 
 4番の作業がそれなりに項目があるので、簡単にできますでしょうか。
 

3か月後に読んでも判るように1つずつ指定するのが当然。
変に小細工すると、後日誰かが読んだときに理解の妨げになります。

投稿日時: 22/04/14 16:58:16
投稿者: jimusyo

Suzu様
よろずや様
 
 ご回答いただき、ありがとうございました。
 
 お二方が言われておりますとおり、
 小細工などせず、1つずつ指定する事とします。
 
 勉強になりました。
 
ありがとうございます。