2012-11-05 9 views
8

SELECTのようなクエリをExcelのVBAから作成することは可能ですか?ExcelからPostgreSQL DBをクエリできますか?VBAを使用してExcelをPostgreSQLに接続する

可能であれば、データベースへの接続方法を教えてください。私はGoogleで探していたが、結果が見つかりませんでした。

答えて

6

PostgreSQLで必要なデータを記述したテーブルまたはビューを作成します。

VBAのODBCまたはADO接続を使用してPostgreSQLに接続します。 ODBCを使用している場合は、odbcad32.exe経由でDSNを作成し、VBでDSNを使用する必要があります。直接接続するのは簡単ではありません。

参照してください:

Better written eample that uses Oracleただし、原則は同じです - ODBC/ADO。

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 
0

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ビットの問題を指摘し、@

+0

。あなたは本当にこの答えでそれに任意の価値を追加しますか? – Alexander

+0

実際、私は** ExcelをPostgreSQLにVBA経由でCraigの答えで接続することも、StackOverflowの他のすべての答えと接続することもできませんでした。 'odbcad32.exe'の潜在的な問題は何も言及していません。 私には明らかではないかもしれませんが、ウェブ上の未解決のスレッドの数によって、私は一人ではないと思います。フォーマット問題のためにGithub上のExcelアドインは機能しませんが、その手順は説明するのに優れています。 私の答えを公開したくない場合は、私は気にならないでしょうが、将来私と同じような問題に遭遇する人もいます。 – Candide

関連する問題