0

我发现了一篇旧帖子,它为我的要求提供了完美的解决方案 - “使用 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
4

1 回答 1

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
于 2016-06-30T15:30:15.100 回答