Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel MS Access-执行VBA后查询定义消失_Excel_Vba_Ms Access 2010 - Fatal编程技术网

Excel MS Access-执行VBA后查询定义消失

Excel MS Access-执行VBA后查询定义消失,excel,vba,ms-access-2010,Excel,Vba,Ms Access 2010,我有一个Access 2010数据库,用来记录工作时间。我在窗体上有一个带有以下VBA的按钮: Private Sub cmdExport_Click() Dim myUser As String myUser = Environ("Username") DoCmd.OutputTo acOutputQuery, "ExportTime", "ExcelWorkbook(*.xlsx)", "C:\Users\" & myUser & "\Desktop\Time" &

我有一个Access 2010数据库,用来记录工作时间。我在窗体上有一个带有以下VBA的按钮:

Private Sub cmdExport_Click()
Dim myUser As String

myUser = Environ("Username")

DoCmd.OutputTo acOutputQuery, "ExportTime", "ExcelWorkbook(*.xlsx)", "C:\Users\" & myUser & "\Desktop\Time" & Format(Me.txtStartDate, "yyyymmdd") & "-" & Format(Me.txtEndDate, "yyyymmdd") & ".xlsx", False, "", , acExportQualityPrint

End Sub
该按钮导出名为ExportTime的已保存查询,其定义如下:

SELECT MYTIME.MYDATE, MYTIME.ID, MYTIME.CM, MYTIME.MYDESCRIP, MYTIME.MYHOURS
FROM CM RIGHT JOIN MYTIME ON CM.ID = MYTIME.CM
WHERE (((MYTIME.MYDATE)>=[Forms]![ExportTime]![txtStartDate] And (MYTIME.MYDATE)<=[Forms]![ExportTime]![txtEndDate]))
ORDER BY MYTIME.MYDATE, MYTIME.CM;
这种情况似乎经常发生。我已将查询定义复制到一个文本文件中,以便在再次导出时间时将其粘贴回。但是,我不明白为什么这个定义一直在消失


任何想法或建议都将不胜感激。

我使用保存的导出规范来完成此任务,并在VBA中:

CurrentProject.ImportExportSpecifications("<name of export specification>").Execute False
CurrentProject.ImportExportSpecifications(“”)。执行False

我不确定本例中的查询是否可以引用表单字段;我将这些值复制到TempVars中,这样就可以了。

在cmdExport\u Click子退出后,定义是否立即重置?还是在表单退出之后?这里还有其他代码吗?这当然很奇怪。它是否经常发生在这个数据库中,或者您在其中使用此代码的任何数据库中?我在损坏的Access数据库中看到过一些类似的怪癖,但压缩和修复通常会有所帮助。当然,现在我发布了这篇文章,我似乎无法复制这个问题。今天早上又发生了这样的事,我终于受够了,把它贴在这里。明天早上我会再试一次,看看它是否再次发生。我不认为有任何其他代码在起作用。这是一个非常轻量级的数据库,我只是为自己。我不在任何其他数据库中使用此代码。感谢布拉德和吉米的回应。如果我可以重复这个问题,我将再次发表评论。我从来没有做过压缩和修复这个数据库。如果问题再次出现,我会尝试。问题再次出现。自从发帖以来,我一直无法复制这个问题。我已经运行了compact和repair,并认为这解决了问题。但在周五,查询定义再次消失。我打开ExportTime表单并单击按钮,收到一条错误消息。查询定义为“SELECT;”。我从中运行查询的表单上的唯一代码是上面描述的“cmdExport\u Click”vba。数据库中没有其他代码引用ExportTime查询。我通过将查询定义粘贴回中修复了它。但我不知道为什么它一开始就消失了。
CurrentProject.ImportExportSpecifications("<name of export specification>").Execute False