在如何在MS Access中使用VBA将值插入数据库表之前,我已经看过此主题,但是并不能解决我的问题。我正在创建一个表单,将值插入到包含数组[]文本的postgresql中的表中。用户必须选择要添加的项目,然后通过单击按钮执行SQL语句。因此,我首先创建一个按钮和一个文本框,以加载要添加到数组中的项目,这是代码
Private Sub cmdSig_Click()
Dim registros As String
registros = "'" & [memo] & "'" & ", "
[resu] = registros & [resu]
End Sub
然后,我创建按钮以执行SQL INSERT INTO语句。这是代码:
Private Sub cmdPruebas_Click()
Dim strsql As String, resultado As String, salida As String
Dim db As Database
dbconnect = "ODBC;DRIVER=PostgreSQL ANSI;UID=***;PWD=***;PORT=5432;SERVER=***.***.**.**;DATABASE=somedb;DSN=C:\***"
Set db = OpenDatabase("", False, False, dbconnect)
resultado = [resu]
strsql = "insert into prueba_arrays (tipo_intervencion) values "
salida = "(array[" & resultado & "]);"
DoCmd.SetWarnings False
DoCmd.RunSQL strsql & salida
DoCmd.SetWarnings True
End Sub
如果我在PostgreSQL中执行结果,例如“插入某个表(array_field)值(array ['value1','value2','value3']);“ 它工作正常。但是在MS-Access中却说:错误3075“执行时间”查询“ array ['value1','value2','value3']'中缺少运算符。知道发生了什么吗?提前致谢!
DoCmd.RunSQL
通过Access数据库引擎运行SQL字符串。有[..]
解释为参数,因此错误消息。
您已打开与PostgreSQL数据库的数据库连接,但未使用它。
它可能像更改一样简单
DoCmd.RunSQL strsql & salida
到
db.Execute strsql & salida, dbSQLPassThrough
通过传递查询,SQL字符串直接传递到数据库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句