Access-Tutorial: Tipps & Tricks zu Abfragen
Auch zum Kapitel Abfragen noch ein paar allgemeine Tipps und Tricks. Abfrageoptimierung
Oft sind verschiedene Lösungen möglich, damit eine Abfrage das gewünschte Ergebnis
liefert. Meistens testet Access aber bereits im Hintergrund selbständig, ob ein
anderer Lösungsweg als der gerade angegebene schneller ist (wer sich näher damit
befasst, kann über Begriffe wie "Rushmore" oder "Showplan" stolpern, auf die hier
nicht näher eingegangen werden soll). Die wichtigste Voraussetzung für die interne
Optimierung ist, dass die Abfrage tatsächlich als Abfrage gespeichert wird. Man kann zum Beispiel als Datensatzquelle eines Formulars anstelle einer Abfrage
auch direkt SQL verwenden, oder man kann SQL zur Laufzeit mit VBA "basteln". Access
kann so etwas intern nicht optimieren. Außerdem sollte man eine Abfrage vor dem
Speichern mindestens einmal ausführen. Access vba abfrage ausführen live. Dabei findet die Optimierung statt und wird
dauerhaft unsichtbar zusammen mit der Abfrage gespeichert.
- Access vba abfrage ausführen direct
- Access vba abfrage ausführen live
- Access vba abfrage ausführen pdf
Access Vba Abfrage Ausführen Direct
Formulare, Berichte
Auf Formulare und Berichte kann man über die Forms- bzw.
Reports- Auflistungen zugreifen. Die darin
enthaltenen Steuerelemente sind wiederum in deren Controls −Auflistung
zu finden. Access bietet neben der in VBA "üblichen" Schreibweise auch eine
Kurzschreibweise an, mit der nicht immer die Auflistung angegeben werden muss. Für
die Kurzschreibweise sollte man nicht den sonst üblichen Punkt als Trennzeichen
verwenden, sondern ein Ausrufezeichen (In der Regel würde zwar ein Punkt genau so
akzeptiert, es kommt dabei aber gelegentlich zu technischen Problemen). Die beiden
folgenden Befehle sind identisch; einmal in der vollen und einmal in der
Kurzschreibweise:
Forms("frmPerson"). Controls("txtNachname"). Access-Tutorial: Tipps & Tricks zu Abfragen. ControlSource
Forms! frmPerson! ntrolSource
Natürlich kann man auch auf Steuerelemente in Unterformularen zugreifen. Nehmen
wir an, das Unterformular heißt UFO und enthält ein Textfeld namens
txtName, dann sieht der Code wie folgt aus:
Forms! Formularname!! txtName
Formulare und Steuerelemente können auf zahlreiche Ereignisse reagieren.
Access Vba Abfrage Ausführen Live
Discussion:
Abfrage per VBA "versteckt" ausführen
(zu alt für eine Antwort)
Hallo, ich habe einen Bericht. Dieser bezieht seine Daten aus einer Abfrage "Zusammenfassen". Diese Abfrage wiederrum greift auf mehrere Unterabfragen zu. Der Bericht soll durch Klick auf einen Button in einem Formular erscheinen. Dabei soll zunächst der SQL-String der Unterabfragen in Abhängigkeit der Eingaben im Formular dynamisch erzeugt werden. Dann sollen die Unterabfragen durchgeführt werden. Tabellenerstellungsabfrage als VBA-Code (Abfrage ist Typ Auswahl). Anschließend werden diese Ergebnisse in der Zusammenfassungsabfrage zusammengefasst. Und dann im Bericht aus dieser "Zusammenfassung" dargestellt. Also Unterabfrage1 (dynamisch) \ Unterabfrage2 (dynamisch) => Zusammenfassungsabfrage => Bericht Wenn ich nun über den VBA-Code des Buttons zunächst die SQL-Strings dynamisch anpasse (mittels strSQL usw. ) und dann einfach den Bericht per Report "Report", acViewPreview aufrufe, werden dann zunächst die Unterabfragen und dann die Zusammenfassungsabfrage automatisch angepaßt und durchlaufen???
Access Vba Abfrage Ausführen Pdf
Auerdem gibt es in Access noch die Tabelle tblWerk. tblWerk enthlt Informationen, die ich fr den neu erstellten Datensatz in tblDessau brauche. Dabei handelt es sich um das Feld werk_EX_ID. So jetzt zu meinem eigentlichen Problem. Abfrage per VBA "versteckt" ausführen. Ich lese also die Excel-Tabelle ein und dabei lese ich auch eine Seriennummer ein. Die Seriennummer speicher ich in einer Variablen (Seriennr) und mchte sie in der nachfolgenden Abfrage verwenden. Code: strSQL = "SELECT werk_EX_ID, werk_GTO_ID_Ausbau, werk_Datum " & _
"FROM tblWerk " & _
"WHERE tblWerk. werk_GTO_ID_Ausbau = ' " & Seriennr & " ' " & _
"AND Exists (SELECT werk_EX_ID_f " & _
"FROM tblDessau " & _
"WHERE tblWerk. werk_EX_ID = werk_EX_ID_f)=False " & _
"ORDER BY werk_Datum DESC;"
strSQL Mit der Abfrage mchte ich zum einen berprfen, ob in der tblWerk eine Seriennummer mit der eingelesen Seriennummer vorhanden ist. Zum anderen will ich berprfen, wenn ein entsprechender Eintrag gefunden wurde, ob die werk_EX_ID nicht schon fr einen lteren Eintrag in tblDessau verwendet wird.
Ich hoffe euch mit meinem HowTo ein wenig weiter geholfen zu haben 😉
Bis zum nächsten Mal!
Eberhard
Hi Maggie und Eberhard! Vielen lieben Dank für euren Input.... ich arbeite noch an der Lösung, die dann auch in meinem DB - Entwurft funzt.... Inzwischen vermute ich, dass ich in der zu Grunde liegenden Abfrage ein Problem habe. By the way.... kann es sein, dass man irgendwann nicht nur nicht umhinkommt, sich mit VBA auseinander zu setzen, wenn man Access an seine persönlichen Vorlieben anpassen möchte, sondern obendrein auch noch in SQL sattelfest werden sollte??? Access vba abfrage ausführen direct. Gosh.... wie lange soll dieser Lernprozess denn noch werden Gruß, Ferdi
Zitat kann es sein, [... ] Ja, so kann man das wohl sagen. Zitat wie lange soll dieser Lernprozess denn noch werden Das ist vermutlich eine "never ending Story". Zitat sondern obendrein auch noch in SQL sattelfest werden sollte??? Wenn Du mit Access nicht Flipper oder andere Spielchen bauen willst, sondern richtige Datenbankarbeit umsetzen willst, ist die Datenbanksprache SQL ein MUSS - und zwar nach m. M. nicht irgendwann nach VBA, sondern sofort und unmittelbar.