User Tools

Site Tools


vba:access:sqlscript:sqlconsole

[VBA][Access] SQL Console

Version ()

Achtung. Diese Doku ist veraltet. Sie ist nicht falsch. Aber die aktuelle Version kann abweichen. Sobald ich Zeit hab, wird die neue Version dokumentiert.

Noch nicht dokumentiert: Text2ddl. Ein Gui, mit dem mal Tabellen in Textform in SQL-Befehle wandeln kann.

Seit ich mich mit SQL als Sprache und nicht als Resultat des Access-Klicki-Bunti-Abfrageeditor beschäftige, störe ich mich an den beschränkten oder nicht vorhanden Möglichkeiten mit SQL in der DB zu arbeiten.
Darum habe ich die SQL-Console programmiert. Damit kann ich SQL-Befehle direkt absenden. Mehrere SQL-Befehle hintereinander ausführen. Diese Scripte speichern etc.

Die aktuelle Version ist sicher noch nicht der Weisheit letzter Schluss, jedoch ergeben sich mehrere Möglichkeiten die ich bereits nicht mehr missen will.

Seit neustem gibts neben dem Formular ADDON_SQL_CODE_CONSOLE noch das Formular ADDON_SQL_CODE_MULTICONSOLE. Die Settings werden für beide in er Tabelle addon_sql_code_console_settings abgelegt. Diese wird beim ersten öffnen automatisch erstellt

  • ADDON_SQL_CODE_CONSOLE Eine einzelne Console
  • ADDON_SQL_CODE_MULTICONSOLE Bis zu 9 Konsolen können soe nebeneinander offen sein

Download

Version ()

Installation

Die eigene Applikation schliessen (und eine Sicherheitskopie anlegen. Traue keinem fremden Code…)

  1. Das Zip in einen eigenen Ordner entpacken
  2. Darin befindet sich eine Installer-Db (Installer.accdb). Diese starten.
  3. Die Zieldatenbank auswählen, in welche die Console installiert werden soll
  4. Der Ordner zu deinem Folder mit dem Installer drin auswählen, sollte er nicht bereits gewählt sein
  5. In der Mehrfachauswahl die Console auswählen
  6. Die Installation starten. Es geht 1-2 Minuten. Es erscheint eine Meldung wenn die Installation beendet ist

Falls du wissen willst, ws genau ausgeführt wurde, kannst du direkt nach der Installation in de VBA-Ansicht des Installers gehen und die Direktausgabe anschauen. Es steht auf meiner TODO-Liste, dass diese Infos im GUI ersichtlich werden…

Informationen zur SQL Console

Anwendung

Bilder

Einfaches Script

Weitere Bilder

Unterstützte SQL-Befehle

Referenzen

Die folgenden Nichtstandartfunktionen/Klassen werden verwendet. Sie sind aber bereits in der accdb-Datei enthalten

Definitionen

Buttons & Tastenkombinationen auf dem Editor

Von Links nach Rechts:

  1. Eine Scriptdatei öffnen (Ctrl + O)
  2. Scriptdatei schliesen (Ctrl + W)
  3. Scriptdatei neu laden (Ctrl + R)
  4. Script speichern (Ctrl + Shift)
  5. Script unter neuem Namen speichern
  6. Scriptfenster leeren (Ctrl + D)
  7. Gespeicherte Variabeln/SQL-Paramters löschen (Ctrl + Shift + R)
  8. Beim ausführen von DML und DDL nicht nachfragen
  9. Das Script unter dem Cursor ausführen (F9)
  10. Alle Scripts ausführen (F5)
  11. Alles markieren (Ctrl-Alt)
  12. Script beim Cursor markieren
  13. Autohighlighting (de)aktivieren
  14. Den Code highlighten (Ctrl + F7)
  15. Das Highlithing ausschalten
  16. Info über die Version der Console und des SQLscript-Klasse

Ohne Button auf der Werkzeugliste des Editors

  1. Ausgabefenster (Logfenster) leeren (Ctrl + Shift + D)
  2. Log kopieren

Beispiele

SELECT

Einfaches SELECT

SELECT * 
FROM tbl_t1;
| id | val |
|----|-----|
| 13 | ABC |
| 14 | DEF |

SELECT mit Fehler

SELECT * 
FROM tbl_t1_t1;
Error 3078
The Microsoft Access database engine cannot find the input table or query 'tbl_t1_t1'. Make sure it exists and that its name is spelled correctly.

VIEW

Erstelle eine Abfrage mit dem parameter param_id

CREATE OR REPLACE VIEW vw_1 AS
SELECT t.*
FROM tbl_t1 AS t
WHERE t.id = [param_id];
View vw_1 created/replaced

Die View verändern (um ORDER BY ergänzen, param_id als Ausgabefled hinzugefügt)

CREATE OR REPLACE VIEW vw_1 AS
SELECT t.*, [param_id]
FROM tbl_t1 AS t
WHERE t.id = [param_id]
ORDER BY id;
View vw_1 created/replaced

Mit SHOW überprüfen, was für Felder dass die neue Abfrage hat

-- Zuerst eine id setzen. Ansonsten wird mit einem Popup nachgefragt
SET param_id = 13;
SHOW COLUMNS FROM vw_1;
Set Paramter [PARAM_ID] to 13

| nr | field_name | field_type | allow_zero_length | required | source_table | source_field | autoincrement | default_value |
|----|------------|------------|-------------------|----------|--------------|--------------|---------------|---------------|
| 1  | id         | LONG       | False             | False    | tbl_t1       | id           | False         |               |
| 2  | val        | TEXT(25)   | False             | False    | tbl_t1       | val          | False         |               |
| 3  | param_id   | BINARY(0)  | False             | False    |              |              | False         |               |

best practice

Views/Abfragen

Ich persönlich schreibe meine Abfragen in einem Texteditor und speichere jeweils zusammengehörende Abfragen in ein Script, welches ich extern speichere. Dann lade ich das Script in die Console und führe den CREATE VIEW aus, den ich grad angepasst habe. Somit habe ich relativ gute Übersicht - gerade bei komplexeren Zusammenhänge.

Shortcut zum Öffnen der Console

Ich richte mir jeweils das Macro AutoKeys ein. Das erkennt Access automatisch als Makro für Shortcuts. Darin erstelle ich den Schortcut CTRL+SHIFT+C. Somit kann ich jederzeit die Console öffnen ohne mich zu den Formularen durchzunavigieren.

vba/access/sqlscript/sqlconsole.txt · Last modified: 19.01.2017 08:54:44 by yaslaw