回答編集履歴
1
追記
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
|
+

|
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の前に移動してあります。
|