我浏览了一个旧帖子,该帖子有我的要求的完美解决方案 - '使用Microsoft Access创建文档数据库'答案由Renaud BomPuis以样本数据库(https://dl.dropboxusercontent.com/u/52900980/StackOverflow/SO25044339.accdb)的形式提供。
我已经能够为此操作源代码以满足我的需要并成功将其插入到我的主数据库中。我唯一的问题是它为我创造了一个错误点的新记录。当用户点击“上传文件”时创建新记录并打开表单以使用文件对话框选择文件。但是,如果用户改变主意并单击取消,则记录已经创建但没有文件路径。
我希望能够只创建一条新记录,如果用户确认它,但我似乎无法将代码操作到正确的顺序以使其工作。
有人可以帮忙吗?非常感谢。
编辑:评论代码
Private Sub btnUploadDoc_Click() ' Create a new record in the Documents table for the selected Works No
Dim DocID As Variant
Dim db As dao.Database
Dim rs As dao.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblDocuments", dbOpenDynaset, dbFailOnError)
With rs
.AddNew !WorksNo = cboWorksNo
.Update
.Move 0, .LastModified
DocID = !DocID
.Close
End With
Set rs = Nothing
Set db = Nothing
DoCmd.OpenForm "frmDocSelect", WhereCondition:="DocID=" & DocID
End Sub
答案 0 :(得分:0)
这不会是一个微不足道的变化,因为(我假设)frmDocSelect
取决于tblDocuments
中的现有记录。
如果用户点击取消,最好的方法就是删除新记录。
像
这样的东西Sub cmdCancel_Click()
Dim DocID As Long
DocID = Me.DocID
' Close form before deleting, to avoid a flicker of "#Deleted"
DoCmd.Close acForm, Me.Name, acSaveNo
CurrentDb.Execute "DELETE * FROM tblDocuments WHERE DocID=" & DocID
End Sub