Normalmente, os atributos definidos em uma cadeia de conexão do ODBC substituem os atributos definidos em um DSN.
Eu pego dados do PostgreSQL via ODBC e coloco os dados na planilha do Excel. Para isso eu uso o VBA, que faz uma tabela de consulta. No script VBA eu especifico uma string de conexão que contém algumas configurações de ODBC
ConnectionString = "ODBC;DSN=PostgreSQL30;DATABASE=xxxxx;SERVER=xxx.xxx.xxx.xxx;PORT=5432;UID=xxx;;SSLmode=disable;ReadOnly=0;Protocol=7.4;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=0;UseDeclareFetch=1;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=1;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;;LFConversion=1;UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=1;LowerCaseIdentifier=0;GssAuthUseGSS=0;XaOpt=1"
Para esta conexão ODBC, há configurações no Windows 7 que estão no Administrador de Fonte de Dados ODBC > DNS do usuário > PostgreSQL30 > Configurar ... > Fonte de dados. Esta é a janela
Quais propriedades de conexão ODBC têm maior prioridade - definidas na configuração do Windows ou definidas com uma string de conexão?
Normalmente, os atributos definidos em uma cadeia de conexão do ODBC substituem os atributos definidos em um DSN.
Tags odbc microsoft-excel vba