与标准表达式ms access的数据类型不匹配

时间:2014-09-08 21:33:57

标签: vba ms-access

我在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;

1 个答案:

答案 0 :(得分:0)

我相信,既然您将sql命令声明为字符串,则必须首先获取它。 所以你的一个代码

sql = sql& “SET Carrera。[carrera_nombre] = strFunction(Carrera。[NombreCarrera])”

应该成为

sql = sql& “SET Carrera。[carrera_nombre] =”& strFunction(Carrera。[NombreCarrera])& “”“