QueryBuilder #
Das QueryBuilder-Objekt ermöglicht den direkten Zugriff auf die SQL-Abfrage eines Datasets. Es wird über Dataset.QueryBuilder abgerufen und kann dazu verwendet werden, SQL-Befehle an den SQL-Server zu senden oder Ergebnisse nach Excel zu exportieren.
Set qb = Dataset.QueryBuilder
Eigenschaften #
| Eigenschaft | Typ | Zugriff | Beschreibung |
|---|---|---|---|
SelectFields | String | lesen/schreiben | Feldliste für die SELECT-Anweisung |
Tablename | String | nur lesen | Name der zugrunde liegenden Tabelle |
LocateFieldname | String | nur lesen | Feldname für die Positionssuche |
LocateValue | String | nur lesen | Suchwert der aktuellen Positionssuche |
PartsCount | Integer | nur lesen | Anzahl der Filterteile |
MaxHits | Integer | lesen/schreiben | Maximale Trefferanzahl (-1 = unbegrenzt) |
Databasename | String | nur lesen | Name der Datenbank |
Methoden #
| Methode | Rückgabe | Beschreibung |
|---|---|---|
RenderSQL | String | Gibt die vollständige SQL-Abfrage zurück |
RenderPreSQL | String | Gibt die Pre-SQL-Anweisung zurück |
RenderOrder | String | Gibt die ORDER-BY-Klausel zurück |
RenderWhere | String | Gibt die WHERE-Klausel ohne WHERE-Schlüsselwort zurück |
RenderWithFields(Fields, MaxHits) | String | Erzeugt eine SQL-Abfrage mit den angegebenen Feldern |
RenderTestSql(SqlWhere) | String | Testet eine WHERE-Klausel gegen die aktuelle Tabelle |
RenderCountSql(SqlWhere) | String | Erzeugt eine COUNT-Abfrage für die angegebene WHERE-Klausel |
AddAdHoc(SqlWhere) | – | Fügt eine zusätzliche WHERE-Klausel hinzu |
AddAdHocWithOrder(SqlWhere, SqlOrder) | – | Fügt eine WHERE-Klausel mit Sortierung hinzu |
Beispiel #
Aktuelle Artikelliste in Excel anzeigen:
Option Explicit
Dim qb, sql, rs
Set qb = Dataset.QueryBuilder
' WHERE-Klausel anzeigen
MsgBox qb.RenderWhere
' SQL mit bestimmten Feldern erzeugen
sql = qb.RenderWithFields("ArtNummer, ArtMatch", -1)
MsgBox sql
' SQL ausführen und nach Excel exportieren
Set rs = Client.ExecuteSql(sql)
impex.excelNewWsCopyFromRecordset rs
Set rs = Nothing
Set qb = Nothing