SELECT
과 같은 쿼리를 Excel의 VBA에서 만들 수 있습니까? Excel에서 PostgreSQL DB를 쿼리 할 수 있습니까?VBA를 통해 Excel을 PostgreSQL에 연결
가능한 경우 데이터베이스에 연결하는 방법을 알려주십시오. Google에서 검색했지만 결과가 없습니다.
SELECT
과 같은 쿼리를 Excel의 VBA에서 만들 수 있습니까? Excel에서 PostgreSQL DB를 쿼리 할 수 있습니까?VBA를 통해 Excel을 PostgreSQL에 연결
가능한 경우 데이터베이스에 연결하는 방법을 알려주십시오. Google에서 검색했지만 결과가 없습니다.
원하는 데이터를 설명하는 PostgreSQL의 테이블이나 뷰를 생성하십시오.
VBA의 ODBC 또는 ADO 연결을 사용하여 PostgreSQL에 연결하십시오. ODBC를 사용하는 경우 odbcad32.exe
을 통해 DSN을 작성한 다음 VB에서 DSN을 사용하면 직접 연결하는 것이 쉽지 않습니다.
참조 :
Better written eample that uses Oracle 그러나 원리는 동일합니다 - ODBC/ADO.
다음은 일부 코드를 참조 할 때 사용할 수있는 코드입니다. 희망이 도움이됩니다.
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
64 비트 Windows의 경우에도 Excel VBA에는 32-bit ODBC driver이 필요합니다.
%windir%\SysWOW64\odbcad32.exe
을 통해 DSN을 만듭니다. 실제로 odbcad32.exe
을 입력하면 기본적으로 적절한 32 비트 드라이버를 찾을 수없는 64 비트 버전을 가리 킵니다.
출처 : https://github.com/windweller/postgresql-excel-addIn (좋은이며 당신보다 자세한 내용을 가지고) 크레이그의 대답은 이미 32 비트 문제를 지적 @
. 당신은이 답변으로 어떤 가치도 정말로 추가합니까? – Alexander
사실 ** ** Craig의 답변이나 StackOverflow의 다른 답변과 함께 ** Excel을 VBA를 통해 PostgreSQL에 연결할 수 없었습니다. 아무도'odbcad32.exe'의 잠재적 문제를 언급하지 않았습니다. 나에게는 분명하지 않을 수도 있지만 웹에 답이없는 스레드의 수가 많아서 나는 혼자가 아니라고 생각합니다. Github의 Excel 추가 기능은 형식 문제로 인해 작동하지 않지만 문구가 따라야 할 절차를 설명하는 것이 좋습니다. 내 대답을 게시하고 싶지 않은 경우 화를 내지는 않지만 나중에 나처럼 똑같은 문제가 발생할 수 있습니다. – Candide