This is an old revision of the document!
Achtung. Diese Doku ist veraltet. Sie ist nicht falsch. Aber die aktuelle Version kann abweichen. Sobald ich Zeit hab, wird die neue Version dokumentiert.
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
Die eigene Applikation schliessen (und eine Sicherheitskopie anlegen. Traue keinem fremden Code…)
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…
Die folgenden Nichtstandartfunktionen/Klassen werden verwendet. Sie sind aber bereits in der accdb-Datei enthalten
Von Links nach Rechts:
Ohne Button auf der Werkzeugliste des Editors
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.
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 | |
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.