簡體   English   中英

通過VBA MS-ACCESS在PostgreSQL數據庫中插入值

[英]Insert values in PostgreSQL database from VBA MS-ACCESS

如何在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 strsql & salida行在Access currentDb中執行SQL。 將該行替換為:

db.Execute strsql & salida

這樣就可以從您打開的數據庫對象執行 SQL,並連接到PostgreSQL。

DoCmd.RunSQL通過Access數據庫引擎運行SQL字符串。 那里[..]被解釋為參數,因此錯誤消息。

您已打開與PostgreSQL數據庫的數據庫連接,但未使用它。

它可能像更改一樣簡單

DoCmd.RunSQL strsql & salida

db.Execute strsql & salida, dbSQLPassThrough

通過直通查詢,SQL字符串直接傳遞到數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM