Vb.net VB OleDbCommand中的查询数据类型不匹配,但Access中的查询数据类型不匹配

Vb.net VB OleDbCommand中的查询数据类型不匹配,但Access中的查询数据类型不匹配,vb.net,excel,ms-access,type-mismatch,oledbcommand,Vb.net,Excel,Ms Access,Type Mismatch,Oledbcommand,我正试图通过VB应用程序将来自Excel文件的数据从导入表(进行一些修改和联接后)插入Access.mdb数据库中的记录,并以编程方式将其插入到另一个表中。我收到的条件表达式中的数据类型不匹配。错误 我理解为什么会发生这种情况,并对每个源表和目标表的每一列进行了梳理,试图找出导致问题的列,但一切似乎都很好 真正奇怪的是,我在Access中编写、保存并测试了查询,结果运行良好,只有在尝试从VB应用程序运行时,才出现不匹配错误: 'COPY DATA FROM IMPORT TO C

我正试图通过VB应用程序将来自Excel文件的数据从导入表(进行一些修改和联接后)插入Access.mdb数据库中的记录,并以编程方式将其插入到另一个表中。我收到的条件表达式中的数据类型不匹配。错误

我理解为什么会发生这种情况,并对每个源表和目标表的每一列进行了梳理,试图找出导致问题的列,但一切似乎都很好

真正奇怪的是,我在Access中编写、保存并测试了查询,结果运行良好,只有在尝试从VB应用程序运行时,才出现不匹配错误:

        'COPY DATA FROM IMPORT TO CASE TABLE
        cnLoad.Open()
        Dim cmd As OleDbCommand = New OleDbCommand()
        cmd.Connection = cnLoad
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandTimeout = 10
        cmd.CommandText = "LoadData"
        cmd.ExecuteNonQuery()
        cnLoad.Close()'
我无法理解为什么只有在从VB运行查询时才会发生这种情况。我发现了这一点,并添加了一个“虚拟”列来建立数据类型,但仍然得到了错误:

访问对类型不匹配的要求是否较低,以至于我无法捕捉到访问中的问题,而OLEDB连接更严格并导致问题。有没有找到不匹配列的方法


谢谢

您可以尝试复制数据库,将副本切换到模式,验证保存的查询是否在Access中运行,然后尝试对其运行VB代码,看看这是否会产生影响。我尝试了您的建议,但仍然收到错误,因此我返回并尝试一次插入~50列中的每一列。我最终发现了这个问题,当字段设置为True/False时,似乎传递了Yes/No。我不确定这是否只是需要进行的更改,还是ANSI 92的更改,但我现在可以从VB运行查询了。谢谢你的帮助!