sql >> Database >  >> RDS >> Mysql

Query in SQL-stijl gebruiken in Excel met VBA

Het kostte me het grootste deel van de dag, maar ik heb dit bedacht. Hier is de code:

Sub Excel_QueryTable()

Sheet2.Cells.ClearContents

Dim oCn As ADODB.Connection
Dim oRS As ADODB.Recordset
Dim ConnString As String
Dim SQL As String

Dim qt As QueryTable

ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\t.xlsm;Extended Properties=Excel 8.0;Persist Security Info=False"
Set oCn = New ADODB.Connection
oCn.ConnectionString = ConnString
oCn.Open

SQL = "Select * from [Sheet1$] WHERE type='man'"

Set oRS = New ADODB.Recordset
oRS.Source = SQL
oRS.ActiveConnection = oCn
oRS.Open

Set qt = Worksheets(2).QueryTables.Add(Connection:=oRS, _
Destination:=Range("A1"))

qt.Refresh

If oRS.State <> adStateClosed Then
oRS.Close
End If

If Not oRS Is Nothing Then Set oRS = Nothing
If Not oCn Is Nothing Then Set oCn = Nothing

End Sub

Om dit in uw eigen werkmap te laten werken, moet u de Data Source . wijzigen pad naar de naam van het bestand dat u gebruikt.

[Sheet1$] in de query is de naam van het blad waaruit u selecteert (laat in de $ ).

Worksheets(2) is het nummer van het blad waar u de dynamische tabel aanmaakt.

Bovendien moet u een van de Microsoft Active X Data Objects . inschakelen bibliotheken door naar Tools>References . te gaan in de VBA-editor in Excel.




  1. Java-opgeslagen procedure aanroepen in Java-programma

  2. Flask by example - Postgres, SQLAlchemy en Alembic instellen

  3. MySQL IFNULL() uitgelegd

  4. MySQL-prestaties:MySQL/MariaDB-indexen