Excel VBA电子表格导入问题
我有一个excel模板,大约12个人使用它来完成日常工作。完成后,会有一个“提交”按钮,使用3个隐藏工作表将一系列单元格传输到该用户的特定数据库中 我使用DoCmd.TransferSpreadsheet Ac导入将单元格范围导入该特定用户的数据库(存储在网络驱动器上),代码如下:Excel VBA电子表格导入问题,excel,ms-access,vba,Excel,Ms Access,Vba,我有一个excel模板,大约12个人使用它来完成日常工作。完成后,会有一个“提交”按钮,使用3个隐藏工作表将一系列单元格传输到该用户的特定数据库中 我使用DoCmd.TransferSpreadsheet Ac导入将单元格范围导入该特定用户的数据库(存储在网络驱动器上),代码如下: Dim acc As New Access.Application Dim AnalystDB As String AnalystDB = Worksheets("Quality Form").Range("I4"
Dim acc As New Access.Application
Dim AnalystDB As String
AnalystDB = Worksheets("Quality Form").Range("I4").Value
acc.OpenCurrentDatabase "Z:\Production\Daily_Work\" & AnalystDB & ".accdb"
acc.DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:="tblSummary", _
Filename:=Application.ActiveWorkbook.FullName, _
HasFieldNames:=True, _
Range:="tblSummary$A:O"
acc.DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:="tblAccount", _
Filename:=Application.ActiveWorkbook.FullName, _
HasFieldNames:=True, _
Range:="tblAccounts$A:D"
acc.DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:="tblErrors", _
Filename:=Application.ActiveWorkbook.FullName, _
HasFieldNames:=True, _
Range:="tblErrors$C:I"
acc.CloseCurrentDatabase
acc.Quit
Set acc = Nothing
我的问题是,每天我都能看到大约30多条正确的提交记录,但总是有3-5条记录缺少一个结束时间值
例如,我将看到这样的记录:
|---------------------|------------------|------------------|
| ID | STARTTIME | ENDTIME |
|---------------------|------------------|------------------|
| 15978458 | 5/30/18 10:15 AM | |
|---------------------|------------------|------------------|
每个数据库文件/表都是彼此的精确副本,我非常彻底地匹配了excel工作表和表字段之间的所有数据类型/格式
我无法确定导致结束时间值不导入的原因。我没有看到任何导入错误的表,通常,如果导入失败,则整个记录将丢失,而不仅仅是表中的一个值
还有几个关键点:总是缺少的值是“endtime”,它是单击submit按钮时的时间戳。当我转到工作表时,我可以在单元格中看到结束日期/时间。此外,一些用户正在excel的一个实例中运行模板,但打开了另一个实例,以便查看其他文件/参考资料。我开始怀疑多个实例是否会导致导入过早结束。我还想知道网络驱动器的延迟是否会导致这个问题。由于这个错误是间歇性发生的,我不知道是什么情况导致了这个错误。如果您能就如何纠正此问题提供任何反馈或建议,我将不胜感激。很可能是由于Excel和/或Access中的日期类型问题造成的。无论如何,请看以下内容:您可以在保存和关闭工作表之前尝试添加一些记录验证。填写时间戳字段的提交代码在哪里?转移前是否保存工作簿?感谢您提出保存主题。因此,当submit过程运行时,它会将所有内容传输到DB,然后将用户返回到工作簿,对文件进行一些更改,然后保存工作簿。也许在数据传输步骤之前添加一个save会有所帮助。