提问者:小点点

Ms Access VBA查询崩溃应用程序-返回???? 回答


抱歉,非常糟糕的命名标题,但我不知道如何描述什么正在发生!

这段代码已经运行了5年,没有出现任何问题,但今天突然出现运行时错误13。

该代码返回一个字符串,然后从mysql服务器返回一个Double。

我在ms access中构造了一个独立的查询,所有数据都显示得很完美,但是,当我从数据创建DAO记录集并尝试读取双重it崩溃(应用程序关闭)时--我尝试了print.debug和it自动崩溃--我尝试了MSGBOX rsTrans(myField),结果显示:

一个??????????????????????????????????????????????????????????????????????????????????

然后它就会冻结它们。

查询信息:

    SELECT chemist.chemistName, reconcil.ReconChemVal, chemist.Active, reconcil.ReconZephyrVal, 
    chemist.ChemShortCode, reconbatch.ReconDate, reconbatch.ReconbatchID, chemist.BSB, chemist.AccountNumber 
    FROM 
reconbatch INNER JOIN ((chemist INNER JOIN scriptbatch ON chemist.ChemShortCode = 
    scriptbatch.chemistID) INNER JOIN (reconcil INNER JOIN scripts ON reconcil.reconcilID = 
    scripts.reconcilID) ON scriptbatch.ScrBatchID = scripts.ScrBatchID) ON reconbatch.ReconbatchID = 
    reconcil.ReconbatchID 
GROUP BY chemist.chemistName, reconcil.ReconChemVal, chemist.Active, 
    reconcil.ReconZephyrVal, chemist.ChemShortCode, reconbatch.ReconDate, reconbatch.ReconbatchID, 
    chemist.BSB, chemist.AccountNumber 
HAVING (((reconcil.ReconChemVal)>0) AND ((chemist.Active)=-1) AND 
    ((chemist.BSB) Is Not Null) AND ((chemist.AccountNumber) Is Not Null));

我发布了查询只是为了添加尽可能多的信息。 再一次,如果我在MYSQL WORKBENCH中运行它,我会得到100%正确的结果,没有错误,所有数据都显示为它应该显示的那样。 如果我试图读取记录集并查看ReconChemVal,那么访问就会崩溃!

我现在已经在MYSQL中将上面的查询创建为视图,在msaccess打开视图时,数据仍然100%正确。

再一次,如果我尝试使用DAO记录集运行代码,它会显示同样奇怪的文本,然后运行时13崩溃。

这是我正在尝试运行的代码:

Dim test3 As DAO.Recordset

Set test3 = CurrentDb.OpenRecordset("SELECT * FROM reconEmails WHERE reconbatchID = 92", dbOpenDynaset)
test3.MoveLast
test3.MoveFirst

MsgBox test3.RecordCount

我在想是不是某种windows update或者什么东西搞砸了access和ODBC???

任何帮助都会很棒,这是我的程序中非常重要的一部分! MsgBox测试3(1)


共1个答案

匿名用户

按照安德烈的说法,我已经把所有的小数都改成了双数,而且它又起作用了