回答編集履歴
1
コード追記
answer
CHANGED
@@ -7,4 +7,28 @@
|
|
7
7
|
DoCmd.RunCommand acCmdCopy 'コピー
|
8
8
|
DoCmd.RunCommand acCmdPasteAppend '追加貼り付け
|
9
9
|
End Sub
|
10
|
-
```
|
10
|
+
```
|
11
|
+
|
12
|
+
別案
|
13
|
+
---
|
14
|
+
コメントで、サブフォームは更新、追加不可、フィールドによってNullにしたり加工したい場合があるとのことでしたので、その場合でも簡単に対応できる方法のサンプルです。
|
15
|
+
RecordsetCloneプロパティを使うと、更新の許可、追加の許可プロパティを「いいえ」にしてあっても更新、追加可能なので、それを利用して追加後、最終レコード(=追加したレコード)へ移動。
|
16
|
+
データの加工は必要に応じて加工してから代入すればいいでしょう。
|
17
|
+
|
18
|
+
```vba
|
19
|
+
Private Sub ボタン_Click()
|
20
|
+
Dim sf As Form
|
21
|
+
Set sf = Me.subform.Form
|
22
|
+
With sf.RecordsetClone
|
23
|
+
.AddNew
|
24
|
+
!col1 = sf.col1
|
25
|
+
!col2 = sf.col2
|
26
|
+
!col3 = sf.col3
|
27
|
+
.Update
|
28
|
+
End With
|
29
|
+
Me.subform.SetFocus
|
30
|
+
DoCmd.GoToRecord acActiveDataObject, , acLast '最終レコードへ移動
|
31
|
+
End Sub
|
32
|
+
```
|
33
|
+
RecorsetCloneプロパティについては、下記を参考にしてください。
|
34
|
+
[フォームの Recordset, RecorsetClone, RecordSet.Clone の違いとは? - hatena chips](https://hatenachips.blog.fc2.com/blog-entry-108.html)
|