我在ms访问模块中有这样的更新:
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列,我声明了函数:
Function strFunction(str) As String
strFunction = str & "test"
End Function
但我收到错误3464与条件表达式的数据类型不匹配,我不明白为什么,strFunction返回一个String而carrera_nombre和CarreraNombre列类型为TEXT。
编辑:如果我通过MsgBox(sql)
检查字符串sql,请获取正确的查询:UPDATE Carrera SET Carrera.[carrera_nombre] = 'mathtest' WHERE Carrera.[CarreraId] > 1000;
答案 0 :(得分:0)
我相信,既然您将sql命令声明为字符串,则必须首先获取它。 所以你的一个代码
sql = sql& “SET Carrera。[carrera_nombre] = strFunction(Carrera。[NombreCarrera])”
应该成为
sql = sql& “SET Carrera。[carrera_nombre] =”& strFunction(Carrera。[NombreCarrera])& “”“