与条件表达式ms访问的数据类型不匹配 [英] Not match the datatypes of the criteria expression ms access

查看:102
本文介绍了与条件表达式ms访问的数据类型不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在ms access模块​​中有这样的更新:

I have a update like this in a module of ms access:

sql = "ALTER TABLE Carrera "
sql = sql & "ADD COLUMN carrera_nombre TEXT(25);"
Application.CurrentDb.Execute (sql)

sql = "UPDATE Carrera "
sql = sql & "SET Carrera.[carrera_nombre] = '" & strFunction(Carrera.[NombreCarrera]) & "' "
sql = sql & "WHERE Carrera.[CarreraId] > 1000;"
Application.CurrentDb.Execute (sql)

在数据库中存在NombreCarrera列,我声明了该函数:

In database the column NombreCarrera exist, and I declared the function:

Function strFunction(str) As String
    strFunction = str & "test"
End Function

但是我收到错误3464与条件表达式的数据类型不匹配,并且我不明白为什么,strFunction返回一个String,而carrera_nombre和CarreraNombre列的类型为TEXT.

But I get the error 3464 Not match the datatypes of the criteria expression, and I don't understand why, the strFunction return a String and the carrera_nombre and CarreraNombre columns type is TEXT.

如果我通过MsgBox(sql)检查字符串sql则得到正确的查询:UPDATE Carrera SET Carrera.[carrera_nombre] = 'mathtest' WHERE Carrera.[CarreraId] > 1000;

If I check string sql through MsgBox(sql) y get the right query: UPDATE Carrera SET Carrera.[carrera_nombre] = 'mathtest' WHERE Carrera.[CarreraId] > 1000;

推荐答案

我相信,由于您将sql命令声明为字符串,因此必须首先获取它. 所以您的代码之一

I believe since you declare the sql command as a string, you will have to get it first. so one of your code

sql = sql& 设置Carrera.[carrera_nombre] = strFunction(Carrera.[NombreCarrera])"

sql = sql & "SET Carrera.[carrera_nombre] = strFunction(Carrera.[NombreCarrera])"

应该成为

sql = sql& "SET Carrera.[carrera_nombre] ="& strFunction(Carrera.[NombreCarrera])& ""

sql = sql & "SET Carrera.[carrera_nombre] = " & strFunction(Carrera.[NombreCarrera]) & """

这篇关于与条件表达式ms访问的数据类型不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆