标准表达式旁路中的数据类型不匹配

时间:2011-03-13 22:55:23

标签: vb.net ms-access jet

我在Access上运行查询,虽然它警告我关于空字段,但它仍然可以运行查询并添加行。

但是,当我在VB.NET中运行JET时,它会说“条件表达式中的数据类型不匹配”。

JET是否有办法像Access一样(即仍然运行查询并添加行)?

我知道我可以在VB.NET中将字段转换为正确的类型并循环,但我没有时间,因为我需要在许多不同的查询中执行此操作。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我会开始查看您有条件的字段,然后在查询中创建select语句,以便将空值更改为可接受的类型(尝试IsNull或NZ)或执行派生表(子查询)在处理标准之前消除空值。

例如

SELECT TextField, DateField, OtherField 
FROM Table 
WHERE TextField='something' And Datefield=#2/11/2011#

这是一个派生表解决方案:

SELECT TextField, DateField, OtherField
FROM ( 
    SELECT TextField, DateField, OtherField 
    FROM Table 
    WHERE TextField Is Not Null And Datefield Is Not Null
     ) AS aTable
WHERE TextField='something' And Datefield=#2/11/2011#

原则上你可以说:

SELECT nz(Table.TextField,'') AS TextField...

希望有所帮助