回答編集履歴

1

コード追記

2021/05/08 02:36

投稿

hatena19
hatena19

スコア33757

test CHANGED
@@ -17,3 +17,51 @@
17
17
  End Sub
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ 別案
24
+
25
+ ---
26
+
27
+ コメントで、サブフォームは更新、追加不可、フィールドによってNullにしたり加工したい場合があるとのことでしたので、その場合でも簡単に対応できる方法のサンプルです。
28
+
29
+ RecordsetCloneプロパティを使うと、更新の許可、追加の許可プロパティを「いいえ」にしてあっても更新、追加可能なので、それを利用して追加後、最終レコード(=追加したレコード)へ移動。
30
+
31
+ データの加工は必要に応じて加工してから代入すればいいでしょう。
32
+
33
+
34
+
35
+ ```vba
36
+
37
+ Private Sub ボタン_Click()
38
+
39
+ Dim sf As Form
40
+
41
+ Set sf = Me.subform.Form
42
+
43
+ With sf.RecordsetClone
44
+
45
+ .AddNew
46
+
47
+ !col1 = sf.col1
48
+
49
+ !col2 = sf.col2
50
+
51
+ !col3 = sf.col3
52
+
53
+ .Update
54
+
55
+ End With
56
+
57
+ Me.subform.SetFocus
58
+
59
+ DoCmd.GoToRecord acActiveDataObject, , acLast '最終レコードへ移動
60
+
61
+ End Sub
62
+
63
+ ```
64
+
65
+ RecorsetCloneプロパティについては、下記を参考にしてください。
66
+
67
+ [フォームの Recordset, RecorsetClone, RecordSet.Clone の違いとは? - hatena chips](https://hatenachips.blog.fc2.com/blog-entry-108.html)