User Tools

Site Tools


vba:tutorials:debugquery

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:tutorials:debugquery [01.04.2016 14:08:43]
yaslaw
vba:tutorials:debugquery [13.02.2019 09:24:39] (current)
yaslaw
Line 1: Line 1:
-======[VBA] [Access] Debug Queries======+======[VBA][Access] Debug Queries======
 //Ein Tutorial zum Debuggen von SQL unter VBA in MS Access.// //Ein Tutorial zum Debuggen von SQL unter VBA in MS Access.//
  
-{{image class="​left"​ url="​images/​icons/​48/​gtk-go-back-rtl.png"​}}  ​ 
 =====Ausgangslage===== =====Ausgangslage=====
 Immer und immer wieder kommt man an den Punkt, dass ein in VBA zusammengesetztes Query nicht das macht was man will. Darum hier mal eine Anleitung, damit ich sie nicht immer wieder schreiben muss. Immer und immer wieder kommt man an den Punkt, dass ein in VBA zusammengesetztes Query nicht das macht was man will. Darum hier mal eine Anleitung, damit ich sie nicht immer wieder schreiben muss.
Line 14: Line 13:
  where = 15  where = 15
  sql = "​UPDATE myTable SET feld1 = " & value & " ​ WHERE id = " & where & ";"​  sql = "​UPDATE myTable SET feld1 = " & value & " ​ WHERE id = " & where & ";"​
- Call DoCmd.RunSQL(sql)+ CurrentDb.execute ​sql
 </​code>​ </​code>​
  
-{{image class="​left"​ url="​images/​icons/​48/​text-x-gtkrc.png"​}}  ​ 
 =====Lösung===== =====Lösung=====
-Um mit der Nummerierung der Schritte Parallel zu [[php:​tutorials:​debugmysqlqueries]] bleiben beginnt es hier mit Punkt 2)+ 
 +====1Report Error ==== 
 +Sicherstellen,​ dass ein Fehler generiert wird, wenn das sql ausgeführt wird. Dazu den execute durch den Parameter dbFailOnError ergänzen 
 +<code vb>​ CurrentDb.execute sql, dbFailOnError</​code>​
  
 ====2) Query-String ausgeben==== ====2) Query-String ausgeben====
Line 33: Line 34:
  sql = "​UPDATE myTable SET feld1 = " & value & " ​ WHERE id = " & where & ";"​  sql = "​UPDATE myTable SET feld1 = " & value & " ​ WHERE id = " & where & ";"​
 Debug.Print sql Debug.Print sql
-' ​   ​Call DoCmd.RunSQL(sql)+' ​   ​CurrentDb.execute ​sql, dbFailOnError
 </​code>​ </​code>​
  
Line 43: Line 44:
  
 ====3) Testen mit Views==== ​ ====3) Testen mit Views==== ​
-Um das Sql zu verfeinern und zu testen kann man dieses nun aus der Ausgabe kopieren.Wechseln auf die Ansichten (Views) der Access-Datenbank. Dort erstellen wir eine neue Ansicht, wechseln auf die SQL-Ansicht und fügen unser SQL-Statement ein. Hier können wir testen und schauen was falsch ist.+Um das Sql zu verfeinern und zu testen kann man dieses nun aus der Ausgabe kopieren.Wechseln auf die Ansichten (Views/Abfragen) der Access-Datenbank. Dort erstellen wir eine neue Ansicht, wechseln auf die SQL-Ansicht und fügen unser SQL-Statement ein. Hier können wir testen und schauen was falsch ist.
 Anschliessend die Erkenntnisse im Code einpflegen. Anschliessend die Erkenntnisse im Code einpflegen.
 Unser korrigiertes und getestete SQL sieht dann so aus Unser korrigiertes und getestete SQL sieht dann so aus
Line 57: Line 58:
  where = 15  where = 15
  sql = "​UPDATE myTable SET feld1 = '"​ & value & "' ​ WHERE id = " & where & ";"​  sql = "​UPDATE myTable SET feld1 = '"​ & value & "' ​ WHERE id = " & where & ";"​
- Call DoCmd.RunSQL(sql)+ CurrentDb.execute ​sql, dbFailOnError
 </​code>​ </​code>​
 {{tag>​VBA MS_Access}} {{tag>​VBA MS_Access}}
vba/tutorials/debugquery.1459512523.txt.gz · Last modified: 01.04.2016 14:08:43 by yaslaw