【问题标题】:"Data type mismatch in criteria expression" in VBA ACCESS SQLVBA ACCESS SQL 中的“条件表达式中的数据类型不匹配”
【发布时间】:2018-10-04 03:34:59
【问题描述】:

我正在尝试将 Access 表中的数据提取到 Excel 工作表中。下面提到的 SQL 查询在执行到达打开查询时抛出错误“条件表达式中的数据类型不匹配”

我搜索了所有可能的修复方法。所有人都在说这个数字可能会用引号传递。我检查它仍然一无所知,查询非常简单,我正在尝试从 DD-MMM-YYYY 格式(03-OCT-2018)的用户表单文本框中选择数据并与时间戳字段的日期部分和我的客户订购标识字段

SELECT * FROM Master_Intrpay_Cash where DateValue(LAST_UPDATE_TIMESTAMP)>=#" & Trim(startdate.value) & "# and DateValue(LAST_UPDATE_TIMESTAMP)<=#" & Trim(enddate.value) & "# ORDER BY CUSTOMER_ID
   

下面显示的是显示正在传递的查询的消息框。如果有帮助。

另外疯狂的部分是上面的查询是从现有的工作查询中复制粘贴的,只是更改了表名和时间戳字段名。休息一切都是一样的。

【问题讨论】:

    标签: excel ms-access


    【解决方案1】:

    尝试不使用DateValue

    SELECT *
    FROM Master_Intrpay_Cash
    WHERE LAST_UPDATE_TIMESTAMP >= # " & Trim(startdate.value) & " #
        AND LAST_UPDATE_TIMESTAMP <= # " & Trim(enddate.value) & " #
    ORDER BY CUSTOMER_ID
    

    DateValue 需要一个字符串作为参数,你的列是日期/时间

    此外,日期的首选格式是#mm/dd/yyyy#(美国日期格式),否则您可能会遇到不同区域设置的问题。

    【讨论】:

    • 感谢谢尔盖,它成功了。但我不知道这很疯狂。我从同一个结构表中进行了相同的查询,其中提到了“日期值”,并且工作正常。不知道这里发生了什么。可能已经是午夜 12 点了,我的系统已经像这样吓到我了。 - 在“DD-MMM-YYYY”中使用的日期格式 m,因为我将在印度使用此代码。
    猜你喜欢
    • 2017-06-28
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多