Consulta desde un botón de comando desde excel a base de datos postgresql

He realizado consultas desde excel a base de datos de postgresql y presentar los datos en una hoja de excel y desde un formulario leer los datos extraídos para presentarlos en un listbox, o en textbox. Pero quier ver la posibilidad de hacer consultas directamente desde un formulario mediante un botón de comando que haga la conexión a la base de datos y ejecutar la consulta sql para extraer la información que se requiera. ¿Es esto posible?
He realizado unas pruebas sencillas pero me da un error. Agradezco si alguien puede apoyarme con esta situación.

El siguiente código es un intento de consulta pero me da un error que dice: " que dice: Se ha producido el error '-2177024809 (80070057)' en tiempo de ejecución. Ya existe una consulta con el nombre 'Consulta1'. "

Private Sub CommandButton1_Click()
    ActiveWorkbook.Queries.Add Name:="Consulta", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Origen = PostgreSQL.Database(""localhost"", ""mibasedb"", [Query=""select * from municipio""])" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Origen"
    Sheets.Add After:=ActiveSheet
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Consulta" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Consulta]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Consulta"
        .Refresh BackgroundQuery:=False
    End With
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub

Añade tu respuesta

Haz clic para o