DoCmd.OpenReport错误

贾斯汀·戴维·高

单击发票预览上的“确定”按钮时,出现“运行时错误'3615'表达式中的类型不匹配”。

我打开主菜单>>选择工作单ID >>单击发票预览>>接受默认信息>>单击确定。当我这样做时,会出现上述错误。我无法弄清楚为什么会发生这种情况,并且在两个地方都更改了字段类型,并以我编码错误的方式以各种不同的格式重做了VBA代码。

有人可以帮助我找到错误的根源...

链接已删除...

汉素

单击该按钮时,这是btnInvoicePreview_Click()行,它将触发错误#3615,“表达式中的类型不匹配”。

DoCmd.OpenReport "Invoice", acPreview

由于发票报表的记录源查询中的此子句而发生错误

FROM
    Employee 
    RIGHT JOIN 
        (
            Client 
            INNER JOIN [Work Order]
            ON Client.ClientID = [Work Order].ClientID
        )
    ON Employee.EmployeeID = [Work Order].EmployeeID

Employee.EmployeeID为AutoNumber,表示其基本数据类型为Long Integer。但是[Work Order].EmployeeID是Text数据类型。因此,您会收到“类型不匹配”错误,因为查询要求将数字字段与文本字段连接在一起。

解决问题的两种方法...

  1. 更改一个表中的字段类型,以使两个字段都具有相同的数据类型,或者至少具有兼容的数据类型
  2. 强制转换一个的数据类型以匹配另一个的数据类型。2个示例:ON Employee.EmployeeID = CLng([Work Order].EmployeeID); 要么ON CStr(Employee.EmployeeID) = [Work Order].EmployeeID

第一种方法可能需要更改其他数据库对象(查询,表单,报表),因此它们不会由于字段数据类型更改而中断。我不知道那会是多么广泛(因此很痛苦)。

第二种方法可行,但是Access查询设计器将不再能够在Design View中显示联接条件。如果您需要转换的值与您强制转换它们的函数不兼容,则会存在更大的问题。例如,所有这些抛出错误:CLng(Null); CLng("");CLng("foo")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DoCmd.OpenReport 后访问异常终止

来自分类Dev

DoCmd.OpenReport 从导航表单打印报告

来自分类Dev

使用acNormal运行Docmd.OpenReport在哪个事件中放置代码?

来自分类Dev

DoCmd.RunSQL mySql出现运行时错误'3464'

来自分类Dev

Microsoft Access运行时错误DoCmd.GoToRecord,,acNext

来自分类Dev

MS Access VBA DoCmd.OpenForm WhereCondition失败,找不到字段错误

来自分类Dev

运行时错误'2498'-Access 2010 VBA-DoCmd.TransferSpreadsheet

来自分类Dev

DoCmd.OpenQuery或DoCmd.RunSQL

来自分类Dev

Microsoft访问DoCmd.GoToRecord

来自分类Dev

如何使用DoCmd.RunSQL

来自分类Dev

访问DoCmd打印方法

来自分类Dev

DoCmd.RunSQL选择语句

来自分类Dev

使用if语句跳过Docmd行

来自分类Dev

DoCmd.RunSQL中的VBA变量

来自分类Dev

参数化查询 + DoCmd.TransferSpreadsheet acExport

来自分类Dev

如何停止 DoCmd.OutputTo 打印文件?

来自分类Dev

Access 2007 VBA DoCmd.SetParameter替换吗?

来自分类Dev

DoCmd.OutputTo仅在中断时有效

来自分类Dev

具有多个条件覆盖的DoCmd.AppltFilter

来自分类Dev

DoCmd.OpenForm之后,焦点未设置在正确的字段上

来自分类Dev

Access 2007 VBA DoCmd.SetParameter替换吗?

来自分类Dev

如何查看由Access DoCmd.OpenForm运行的SQL语句

来自分类Dev

添加DoCmd.Close行时,访问未关闭

来自分类Dev

DoCmd.PrintOut 只打印一份

来自分类Dev

docmd.runsql 上的数据类型不匹配

来自分类Dev

DoCmd.TransferSpreadsheet 无法识别工作表名称

来自分类Dev

Microsoft Access DoCmd.OutputTo 无法识别 acOutPutQuery

来自分类Dev

如何在 DoCmd.OutputTo 代码中调出变量?

来自分类Dev

DoCmd.GoToRecord将1添加到目标记录