Oto niektóre kod może służyć jako odniesienie. Mam nadzieję, że to pomoże.
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
@ odpowiedź Craiga (co jest dobre i ma więcej szczegółów niż Twoje) już zwraca uwagę na problem 32bit. Czy naprawdę dodajesz do tego jakąś wartość z tą odpowiedzią? – Alexander
Właściwie, ** nie mogłem ** połączyć Excela z PostgreSQL przez VBA z odpowiedzią Craiga, ani z wszystkimi innymi odpowiedziami na StackOverflow. Żaden nie wspomniał o potencjalnym problemie z 'odbcad32.exe'. Może to być oczywiste dla niektórych, ale nie dla mnie, i według liczby wątków bez odpowiedzi w sieci, myślę, że nie jestem sam. Dodatek do programu Excel na Github nie działa z powodu problemu z formatowaniem, ale jego sformułowanie doskonale wyjaśnia procedurę. Jeśli nie chcesz publikować mojej odpowiedzi, nie będę zły, ale kilka osób spotka się z tym samym problemem, tak jak ja w przyszłości. – Candide