是否可以在Excel中从VBA进行SELECT
查询,这样我就可以从Excel查询PostgreSQL数据库了?
如果可能,请解释我如何连接到数据库。我正在寻找谷歌,但没有找到任何结果。
答案 0 :(得分:7)
这里有一些代码可以作为参考。希望能帮助到你。
Sub SelectBasic()
Dim objDb_con
Dim strSomeValue As String
Set objDb_con = CreateObject("ADODB.Connection")
Set Rsdatatype = CreateObject("ADODB.RecordSet")
glbConnString = Trim(ActiveSheet.Range("B1").Value)
//Connection string format:Driver={PostgreSQL Unicode};Database=MyDB;server=192.16*.*.**;UID=USERID;Pwd=pasword //comment it
If glbConnString = "" Then
MsgBox "Enter the Connection String"
Else:
objDb_con.Open glbConnString
strSql = "select strSomeValue from SOMETABLE where Something=1"
Rsdatatype.Open strSql, objDb_con, adOpenKeyset, adLockpessimistic
If Rsdatatype.EOF = False Then strSomeValue = Rsdatatype.Fields(0).Value
Rsdatatype.Close
End If
objDb_con.Close
End Sub
答案 1 :(得分:6)
在PostgreSQL中创建一个描述所需数据的表或视图。
使用VBA中的ODBC或ADO连接来连接PostgreSQL。如果使用ODBC,您需要通过odbcad32.exe
创建DSN,然后在VB中使用DSN,直接连接并不容易。
请参阅:
Better written eample that uses Oracle,但原则是相同的 - ODBC / ADO。
答案 2 :(得分:0)
即使对于64位Windows,Excel VBA也需要32-bit ODBC driver。
通过%windir%\SysWOW64\odbcad32.exe
创建DSN。实际上,键入odbcad32.exe
指向64位版本,默认情况下找不到合适的32位驱动程序。