如何在使用取消请求停止代码时删除 运行-时间错误“3464”

How to remove Run-time error '3464' when stopping code with a cancellation request

我的代码 (MS Access VBA) 有一个小问题。这没什么大不了的,但是这不是取消请求应该看到的东西。

代码的初始部分允许我提取图片的路径和文件名,效果非常好。

Private Sub Image2_DblClick(Cancel As Integer)

'Source: 

    Dim f As Object
    Dim strFile As String
    Dim strFolder As String
    Dim varItem As Variant

    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    If f.Show Then
        For Each varItem In f.SelectedItems
            strFile = Dir(varItem)
            strFolder = Left(varItem, Len(varItem) - Len(strFile))
            TempVars.Add "imagePath2", strFolder & strFile

       Next
    End If
    Set f = Nothing

下一部分将该字符串插入到我的查询中的指定字段中。这也很漂亮。

With DoCmd
    .SetWarnings False
    .OpenQuery "updateQueryVarietiesImage2"
    .SetWarnings True
     DoCmd.RunCommand acCmdRefresh
     Me.Requery

End With

End Sub

我遇到的问题是如果我取消从生成的弹出窗口中选择图像 window。取消后我得到 "Run-time error '3464': Data type mismatch in criteria expression"

点击 "Debug" 突出显示

.OpenQuery "updateQueryVarietiesImage2"

我确定该错误与查询因取消而未 运行 这一事实有关,但我不希望错误出现。如果用户点击取消,我应该使用什么代码来阻止错误出现?

如果没有选择文件,你能不能跳过代码:

If f.SelectedItems.Count > 0 Then
    With DoCmd
        .SetWarnings False
        .OpenQuery "updateQueryVarietiesImage2"
        .SetWarnings True
        .RunCommand acCmdRefresh
    End With
    Me.Requery        
End If