回答編集履歴

1

追記

2019/07/12 07:34

投稿

dit.
dit.

スコア3235

test CHANGED
@@ -25,3 +25,109 @@
25
25
 
26
26
 
27
27
  IDが数字ではない(最大の数字では困る)場合などは一意となるデータで判断してください。
28
+
29
+
30
+
31
+ ---
32
+
33
+ #追記
34
+
35
+ 簡易的に最低限のものを作ってテストしました。
36
+
37
+ Access2010
38
+
39
+ ![イメージ説明](a5f48549bede48f90c0b4195a6c7f7e6.jpeg)
40
+
41
+ #テーブル
42
+
43
+ **[CustomerTable]**
44
+
45
+ CustomerCode テキスト型 主キー
46
+
47
+ CustomerName テキスト型
48
+
49
+
50
+
51
+ #フォーム
52
+
53
+ **[F_CustomerMaster]**
54
+
55
+ ボタンやサブフォームを表示させるためのもの
56
+
57
+ 非連結
58
+
59
+
60
+
61
+ **[Sub_CustomerMaster]**
62
+
63
+ 顧客一覧を表示させるためのもの
64
+
65
+ [F_CustomerMaster]内にサブフォームとして表示(名前も[Sub_CustomerMaster])
66
+
67
+ レコードソース[CustomerTable]
68
+
69
+
70
+
71
+ **[F_CustomerRegistration]**
72
+
73
+ 登録用フォーム
74
+
75
+ レコードソース[CustomerTable]
76
+
77
+ データ入力用「はい」
78
+
79
+
80
+
81
+ #処理
82
+
83
+ **1.[F_CustomerMaster]に「登録フォーム表示」ボタンを設置**
84
+
85
+ クリック時イベントに以下を記述
86
+
87
+ ```vba
88
+
89
+ DoCmd.OpenForm "F_CustomerRegistration", WindowMode:=acDialog
90
+
91
+
92
+
93
+ ```
94
+
95
+
96
+
97
+ **2.[F_CustomerRegistration]に「登録」ボタンを設置**
98
+
99
+ クリック時イベントに以下を記述
100
+
101
+ ```vba
102
+
103
+ Dim newID As String
104
+
105
+ newID = Me.CustomerCode
106
+
107
+ DoCmd.Close acForm, Me.Name
108
+
109
+ With Forms!F_CustomerMaster!Sub_CustomerMaster.Form
110
+
111
+ .Requery
112
+
113
+ .Recordset.FindFirst "CustomerCode = '" & newID & "'"
114
+
115
+ End With
116
+
117
+ ```
118
+
119
+
120
+
121
+ これで一応
122
+
123
+ 1.登録用(入力用)フォームをダイアログモードで表示
124
+
125
+ 2.入力したCustomerCodeをnewIDに記憶し、Sub_CustomerMasterをRequery、newIDと同じレコードへ移動
126
+
127
+ はできると思われます。
128
+
129
+
130
+
131
+ 実際は登録用フォームが入力用フォームではなかったり(非連結で追加クエリで追加してたり)CustomerCodeが自動的に入ったり他にも処理が入るとは思いますが「動かなくはないよ」という補足でした。
132
+
133
+ ※元のコメントに書いたコードからDoCmd.Close acForm, Me.Nameの位置だけWithの前に移動してあります。