PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sử dụng ADO trong VBA để kết nối với PostgreSQL

Tôi sẽ không sử dụng DSN vì tôi đang sử dụng trình điều khiển ODBC trái ngược với OLE DB. Bằng cách tham chiếu đến DSN, đoạn mã trên hoạt động với rất ít thay đổi.

Hãy xem câu hỏi này để biết cách tôi tìm ra câu trả lời khi tôi bắt đầu nghi ngờ OLE DB / ODBC về vấn đề này. ADO có hoạt động với trình điều khiển ODBC hay chỉ nhà cung cấp OLE DB không?

Mã mới tại đây:

Sub GetCustomers()
Dim oConn As New ADODB.connection
Dim cmd As New ADODB.Command
' Connection Parameters
Dim strUsername As String
Dim strPassword As String
Dim strServerAddress As String
Dim strDatabase As String
' User:
strUsername = Sheets("CONFIG").Range("B4").Value
' Password:
strPassword = Sheets("CONFIG").Range("B5").Value
' Server Address:
strServerAddress = Sheets("CONFIG").Range("B6").Value
' Database
strDatabase = Sheets("CONFIG").Range("B3").Value


oConn.Open "DSN=my_system_dsn;" & _
    "Database=" & strDatabase & ";" & _
    "Uid=" & strUsername & ";" & _
    "Pwd=" & strPassword

Set xlSheet = Sheets("CUSTOMERS")
xlSheet.Activate
Range("A3").Activate
Selection.CurrentRegion.Select
Selection.ClearContents
Range("A1").Select

Dim strSQL As String
strSQL = "SELECT * FROM customers"

cmd.CommandType = ADODB.CommandTypeEnum.adCmdText
cmd.ActiveConnection = oConn
cmd.CommandText = strSQL

Set rs = New ADODB.Recordset
Set rs = cmd.Execute

For i = 1 To rs.Fields.Count
    ActiveSheet.Cells(3, i).Value = rs.Fields(i - 1).Name
Next i

xlSheet.Range(xlSheet.Cells(3, 1), _
    xlSheet.Cells(3, rs.Fields.Count)).Font.Bold = True

ActiveSheet.Range("A4").CopyFromRecordset rs

xlSheet.Select
Range("A3").Select
Selection.CurrentRegion.Select
Selection.Columns.AutoFit
Range("A1").Select

rs.Close
oConn.Close

Set cmd = Nothing
Set param = Nothing
Set rs = Nothing
Set cnn = Nothing
Set xlSheet = Nothing
End Sub

Hệ thống DSN được cấu hình để sử dụng trình điều khiển PostgreSQL Unicode. Tôi đã chọn không sử dụng OLE DB mặc dù có sẵn một nhà cung cấp. Nếu bạn nhìn vào PGFoundry, bạn sẽ thấy nó có nhiều vấn đề và đã không được cập nhật trong vài năm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách sử dụng kiểu dữ liệu Blob trong Postgres

  2. Spring JPA + tự động chuyển đổi nguồn dữ liệu giữa các lược đồ trong postgresql

  3. Oracle sang PostgreSQL - Con trỏ và ltrees

  4. Cách INTERSECT hoạt động trong PostgreSQL

  5. Sử dụng pg_notify trong hàm kích hoạt PostgreSQL