質問するログイン新規登録

回答編集履歴

1

追記

2019/07/12 07:34

投稿

dit.
dit.

スコア3235

answer CHANGED
@@ -11,4 +11,57 @@
11
11
  コード自体はこの辺のを参考にさせていただいた気がしますがちょっと前のことなので記憶が曖昧です。
12
12
  [https://tsware.jp/tips/tips_243.htm](https://tsware.jp/tips/tips_243.htm)
13
13
 
14
- IDが数字ではない(最大の数字では困る)場合などは一意となるデータで判断してください。
14
+ IDが数字ではない(最大の数字では困る)場合などは一意となるデータで判断してください。
15
+
16
+ ---
17
+ #追記
18
+ 簡易的に最低限のものを作ってテストしました。
19
+ Access2010
20
+ ![イメージ説明](a5f48549bede48f90c0b4195a6c7f7e6.jpeg)
21
+ #テーブル
22
+ **[CustomerTable]**
23
+ CustomerCode テキスト型 主キー
24
+ CustomerName テキスト型
25
+
26
+ #フォーム
27
+ **[F_CustomerMaster]**
28
+ ボタンやサブフォームを表示させるためのもの
29
+ 非連結
30
+
31
+ **[Sub_CustomerMaster]**
32
+ 顧客一覧を表示させるためのもの
33
+ [F_CustomerMaster]内にサブフォームとして表示(名前も[Sub_CustomerMaster])
34
+ レコードソース[CustomerTable]
35
+
36
+ **[F_CustomerRegistration]**
37
+ 登録用フォーム
38
+ レコードソース[CustomerTable]
39
+ データ入力用「はい」
40
+
41
+ #処理
42
+ **1.[F_CustomerMaster]に「登録フォーム表示」ボタンを設置**
43
+ クリック時イベントに以下を記述
44
+ ```vba
45
+ DoCmd.OpenForm "F_CustomerRegistration", WindowMode:=acDialog
46
+
47
+ ```
48
+
49
+ **2.[F_CustomerRegistration]に「登録」ボタンを設置**
50
+ クリック時イベントに以下を記述
51
+ ```vba
52
+ Dim newID As String
53
+ newID = Me.CustomerCode
54
+ DoCmd.Close acForm, Me.Name
55
+ With Forms!F_CustomerMaster!Sub_CustomerMaster.Form
56
+ .Requery
57
+ .Recordset.FindFirst "CustomerCode = '" & newID & "'"
58
+ End With
59
+ ```
60
+
61
+ これで一応
62
+ 1.登録用(入力用)フォームをダイアログモードで表示
63
+ 2.入力したCustomerCodeをnewIDに記憶し、Sub_CustomerMasterをRequery、newIDと同じレコードへ移動
64
+ はできると思われます。
65
+
66
+ 実際は登録用フォームが入力用フォームではなかったり(非連結で追加クエリで追加してたり)CustomerCodeが自動的に入ったり他にも処理が入るとは思いますが「動かなくはないよ」という補足でした。
67
+ ※元のコメントに書いたコードからDoCmd.Close acForm, Me.Nameの位置だけWithの前に移動してあります。