1

我在 Access 2007 中有一个导入函数,它读取一个文本文件,然后根据该行的内容,将该行导入到多个表中。

当我运行该函数时,我的一个表没有完全填充(只有大约 100 条记录,而它应该包含大约 700 条记录),这使我对导入函数的其余部分产生了怀疑。

当我在代码中放置一个断点并停止每一行时,或者如果我单步执行代码,它会正确执行。然后我放了一个计数器和一个中断,以便我可以运行代码段并发现它也失败了。任何想法,将不胜感激。

样本:

Function MainLoop
   ....
   do while not fs.eof
       strLine = fs.ReadLine
       if instr(1,strLine, "transponder") then
          ImportTransponder strLine    'Break here and run loop once or step through and functions OK
       elseif instr(1, strLine, "CHK") then
           ImportChk strLine
       ....
       end if
    loop 
    ....
End Function

Function ImportTransponder(strLine as string)
    ....
    strSQL = "INSERT INTO tbl(Field1, Field2) VALUES (Value1, Value2)
    docmd.setwarnings false
    docmd.runSQL strSQL
    docmd.setwarnings true

End Function
4

1 回答 1

2

您可能会在此处丢弃有用的故障排除信息...

docmd.setwarnings false
docmd.runSQL strSQL
docmd.setwarnings true

关闭意味着当尝试失败SetWarnings时您可能不会收到通知。INSERT这可能是那些丢失记录的解释。

至少暂时替换那段代码,用这个......

DoCmd.SetWarnings True ' make sure it is on
CurrentDb.Execute strSQL, dbFailOnError

您可能会发现INSERT尝试因各种原因而失败。坚持SetWarnings下去会让你有更好的机会找出原因。

于 2013-08-29T02:33:01.370 回答