我有一个带有属性“Data Entry = Yes”的有界表单,它有多个文本框和一个附件类型的字段。
我有一个“保存”按钮,提示确认保存记录。
在表格上,我放置了一个标有“包括培训”的复选框。
如果选中该复选框,我想向同一个表中添加一条附加记录(通过有界表单添加的记录除外),其信息与插入有界表单中的记录完全相同,除了一个文本字段将不同并在 VBA 代码中定义。
我尝试了一个CurrentDB.Execute SQL
查询,但它不适用于附件字段类型。
文档中提出的解决方案不适用于这种情况,因为我想获取包含在表单上的有界附件字段中的附件,而不是来自磁盘上的路径。
我认为类似下面的东西可以工作,但是当我测试它时,它会保存有界表单中的记录,而不是我想用 VBA 代码添加的额外记录,并且它以错误结束:
424 需要对象
VBA代码:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
On Error GoTo Err_BeforeUpdate
If Me.Dirty Then
If MsgBox("Do you want to save the new record?", vbYesNo + vbQuestion, _
"Save Record") = vbNo Then
Me.Undo
MsgBox "Changes discarded."
Else
If Me.checkbox.Value = True Then
Set rsTable = db.OpenRecordset("Table")
With rsTable
.AddNew
!TextField1 = Me.TextField1.Value
!TextField2 = "My Own Text Field"
!AttachmentField = Me.AttachmentField.Value
.Update
.Bookmark = .LastModified
End With
MsgBox "Record was correctly saved."
End If
End If
End If
End Sub
非常感谢您的帮助。
编辑:
很明显,这不是保存新记录的正确方法,但我需要在同一时间(或之后)保存这条记录在有界表单上。我不希望用户填写另一个有界表单。
之所以会这样,是因为我输入的是语言认证记录,有的认证范围更广,包括两个级别。因此,复选框表示“您是否也想包含上一个级别?”,如果选中,则上传的 PDF 证书对级别 1 和级别 2 均有效。除级别名称外,所有信息都相同的记录。
我需要这两个是单独的记录,因为我也可以单独拥有它们,然后我会根据这些单独的语言级别检查条件。