Access (VBA)

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

 
(Windows 10 Pro : Access 2016)
サブフォームレコードを
投稿日時: 18/08/25 07:45:19
投稿者: ゴマゴマ

お世話になります。
 
やりたいこと
サブフォーム1(帳票フォーム)中のカーソルがあるレコードをコピー実行ボタンを押すことでメインフォーム1(単票フォーム)にコピーしたい。
 

メインフォーム1	(tbl@ キー:受注集約コード)					
受注集約コード 寸法  コピー
BBBCCC	   10x3  実行ボタン ←−理想の形	
					 |
サブフォーム1(tblA キー:受注)		 |			
受注	受注 受注集約コード 寸法 数量	 |		
001	AAA	AAAAAA	  10x5  2	 |		
002	BBB	BBBCCC   10x3  3←これをコピーする場合		
003	CCC	BBBCCC   20x5  7	

 
問題
サブフォーム1でコピーしたいレコードにカーソルを置いてコピー実行ボタンを押すと、まずカーソルがサブフォーム1の一番上の行(上記では受注集約コードAAAAAAのレコード)に行って、それから受注集約コードAAAAAAと寸法10x5がメインフォーム1の受注集約コードと寸法のテキストボックスにコピーされます。本当はBBBCCCと10x3がコピーされてほしいのですが。。
 
コピー実行ボタンのコード
Private Sub コピー実行ボタン_Click()
tbl@.受注集約コード = Me.サブフォーム1.Form.受注集約コード
tbl@.寸法 = Me.サブフォーム1.Form.寸法
End Sub
 
理想の形にする方法をご教示ください。
 
以上

回答
投稿日時: 18/08/27 09:42:20
投稿者: sk

引用:
サブフォーム1でコピーしたいレコードにカーソルを置いて
コピー実行ボタンを押すと、まずカーソルがサブフォーム1の
一番上の行(上記では受注集約コードAAAAAAのレコード)に行って
それから受注集約コードAAAAAAと寸法10x5がメインフォーム1の
受注集約コードと寸法のテキストボックスにコピーされます。

引用:
Private Sub コピー実行ボタン_Click()

[コピー実行ボタン]の Click イベントよりも先に
何らかのイベントが発生していて、そのイベントで
サブフォームの再クエリ(を伴う命令)を実行させている
マクロ/プロシージャがあるのではないのでしょうか。

回答
投稿日時: 18/08/27 11:10:42
投稿者: Suzu

「コピー実行ボタン」 これは、メインフォームにあるのでしょうか。
サブフォームの詳細セクションなり、ヘッダー/フッター側に配置しては?
 
多分、skさんのおっしゃる様に、サブフォームコントロールの
ExitやLostForcus あたりで カレントレコードを変える操作がなされているのでしょう。
 
であれは、そのイベントを発生させなければ良い。

投稿日時: 18/08/28 18:27:13
投稿者: ゴマゴマ

sk様 Suzu様
 
ご回答ありがとうございます。
メインフォームの「読み込み時」に新しいレコードへ移動する設定をしており、それを外したら理想の形になりました。大変助かりました。引き続きよろしくお願いいたします。
 
以上