与条件表达式ms访问的数据类型不匹配 [英] Not match the datatypes of the criteria expression ms access
问题描述
我在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屋!