 |
Abfragen mit SchaltflΣchen direkt im Formular ausfⁿhren
Ich erhalte meine Artikeldaten als Excel-Tabelle, die ich in Access importiere. Vorher kopiere ich die alten Daten mit einer Anfⁿgeabfrage in die Tabelle ╗Datensicherung½ und l÷sche die alte Tabelle ╗Artikel½ mit einer L÷schabfrage. Leider gelingt es mir nicht, diesen Ablauf zu automatisieren. Ich mu▀ mein Formular jeweils verlassen und die Abfragen per Hand im Datenbankfenster ausfⁿhren. Kann ich die Abfragen auch im Formular ausfⁿhren?
Das ist m÷glich. Damit Sie die Abfragen nicht im Datenbankfenster ausfⁿhren mⁿssen, k÷nnen Sie im Formular zwei zusΣtzliche SchaltflΣchen anlegen, die Sie entsprechend programmieren.
Dazu aktivieren Sie die Toolbox mit dem Befehl ╗Ansicht - Toolbox½ und klicken dann nacheinander auf das Symbol fⁿr die SchaltflΣchen und auf das Formular. Falls der Steuerelement-Assistent aktiviert ist, wΣhlen Sie die Kategorie ╗Diverses½ und die Aktion ╗Abfrage ausfⁿhren½. Danach k÷nnen Sie die gewⁿnschte Abfrage auswΣhlen. Access nimmt dann die VBA-Programmierung fⁿr Sie vor.
Wenn Sie die Programmierung bearbeiten wollen, klicken Sie die soeben ins Formular eingefⁿgte SchaltflΣche mit der rechten Maustaste an, rufen im Kontextmenⁿ den Befehl ╗Ereignis½ auf und wΣhlen gegebenenfalls den Code-Editor. Im Editor ist das Objekt ╗DoCmd½ fⁿr das Ausfⁿhren der Abfrage zustΣndig. Ein Beispiel stellt das Listing im Kasten unten dar, das Sie als ABFRAGE.TXT auf der Heft-CD finden.
Die Methode ╗OpenQuery½ fⁿhrt eine vorhandene Abfrage aus. Der erste Parameter ist der Abfragename. Den Import Ihrer Excel-Tabelle erledigt die Methode ╗TransferSpreadsheet½. Der erste Parameter aktiviert den Import. Der zweite Parameter legt den Excel-Dateityp fest (8=Excel 97), und der Dritte definiert die Excel-Datei. Der vierte Parameter schlie▀lich bestimmt, ob Access die Feldnamen aus der Excel-Tabelle ⁿbernehmen soll (True) oder nicht (False).
Listing ╗Abfrage½
Private Sub Artikelsichern_Click ()
DoCmd.OpenQuery "Datensicherung Artikel"
DoCmd.OpenQuery "Artikel l÷schen"
DoCmd.TransferSpread.sheetacImport,8,"Artikel","c:artikel.xls",True
End Sub
|
 |