35
Access 2003 Programmierung mit Visual Basic Autor: Andreas Klein 3. Auflage: 2005 © Merkwerk Alle Rechte vorbehalten. Kein Teil des Werkes darf in irgendeiner Form ohne Genehmigung der Firma Merkwerk reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Diese Schulungsunterlage wurde mit Sorgfalt erstellt und geprüft. Trotzdem können Fehler nicht vollkommen ausgeschlossen werden. Für fehlerhafte Angaben und deren Folgen kann daher keine Haftung übernommen werden.

Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

  • Upload
    ngodang

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Access 2003Programmierung

mit Visual Basic

Autor: Andreas Klein

3. Auflage: 2005

© Merkwerk

Alle Rechte vorbehalten. Kein Teil des Werkes darf in irgendeiner Form ohne Genehmigung der Firma Merkwerk reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Diese Schulungsunterlage wurde mit Sorgfalt erstellt und geprüft. Trotzdem können Fehler nicht vollkommen ausgeschlossen werden. Für fehlerhafte Angaben und deren Folgen kann daher keine Haftung übernommen werden.

Page 2: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Inhaltsverzeichnis

1 Lernziele 3

2 Namenskonventionen 4

3 Die Mitarbeitertabelle 5

4 Erstellung von Formularen 6

5 Verwaltung der Stammdaten 85.1 FORMULAR MITARBEITER............................................................................................................85.1.1 EIGENSCHAFTEN DER STEUERELEMENTE......................................................................................95.1.2 PROGRAMMIERUNG...............................................................................................................105.2 NEUER MITARBEITER...............................................................................................................155.2.1 EIGENSCHAFTEN DER STEUERELEMENTE....................................................................................165.2.2 PROGRAMMIERUNG...............................................................................................................175.3 MITARBEITER ANZEIGEN............................................................................................................215.3.1 EIGENSCHAFTEN DER STEUERELEMENTE....................................................................................225.3.2 PROGRAMMIERUNG...............................................................................................................235.4 MITARBEITER BEARBEITEN........................................................................................................ 255.4.1 EIGENSCHAFTEN DER STEUERELEMENTE....................................................................................265.4.2 PROGRAMMIERUNG...............................................................................................................27

6 Die Such-/Sortierfunktion 306.1.1 SORTIEREN:....................................................................................................................... 316.1.2 SUCHEN:........................................................................................................................... 32

7 Fehlerroutine 33

8 Datensätze nach Excel exportieren 34

www.merkwerk.de Seite 2

Page 3: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

1 Lernziele

Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind die Verwendung von Tabellen, die Erstellung von Formularen, die Anbindung an Tabellen, das Anlegen, Bearbeiten und Löschen in Tabellen über ein Formular und die Verwendung von SQL Anweisungen.

Basis ist eine Tabelle, mit den notwendigen Feldern für die Stammdatenpflege. Zur Anzeige und zur weiteren Verarbeitung wird ein Startdialog erstellt.Von diesem Startdialog ausgehend, soll die Möglichkeit bestehen, über verschiedene Schaltflächen die jeweiligen Formulare zur Bearbeitung aufzurufen und die Daten über die Formulare einzugeben oder zu verändern.Der Startdialog soll zudem die Möglichkeit bieten, Datensätze nach gewissen Kriterien zu suchen oder innerhalb der Liste zu sortieren.

Die Formulare werden einzeln aufgeführt und im jeweiligen Kapitel komplett bearbeitet. Jedes Formular wird von der Erstellung über die Eigenschaften bis hin zum Programmcode durchgesprochen.

www.merkwerk.de Seite 3

Page 4: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

2 Namenskonventionen

Notationen sind Programmierhilfen. Sie geben dem Programmierer zur Entwurfszeit Rückschlüsse auf den Datentyp des Objektes. Der Code wird „lesbarer“ und es werden Fehlerquellen durch implizite Typumwandlungen vermieden. Sie sollen helfen, dass der Code übersichtlicher wird und somit auch Personen, die nicht bei der Entwicklung dabei waren, das Programm zu verstehen.

Variablen sollten Präfixe erhalten, die auf den Datentyp verweisen:z.B. iBox = Variable vom Typ Integer

sSQL = Variable vom Typ String

Beispiele am aktuellen Fall:

Objekte BezeichnungTextfelder txtBezeichnungListenfelder lstBezeichnungKombinationsfelder cboBezeichnungOptionsfelder optBezeichnungFormulare frmBezeichnungTabellen tblBezeichnungBezeichnungsfelder lblBezeichnungBefehlsschaltflächen cmdBezeichnung

z.B.: = cmdBearbeiten

Notizen

www.merkwerk.de Seite 4

Page 5: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

3 Die Mitarbeitertabelle

Erstellen Sie in ACCESS eine neue Tabelle in der Entwurfsansicht. Speichern Sie die Tabelle unter dem Namen tblMitarbeiter. Die zu verwendenden Felder entnehmen Sie der Abbildung.

Wenn diese Tabelle erstellt ist wechseln Sie in das Register Formulare.

Notizen

www.merkwerk.de Seite 5

Page 6: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

4 Erstellung von Formularen

Erstellen Sie ein neues Formular, welches den Namen frmMitarbeiter erhält.Zum Erstellen öffnen Sie die Entwurfsansicht.

Sie erhalten eine leere Fläche, auf die Sie nach belieben die benötigten Steuerelemente setzen können.

Notizen

www.merkwerk.de Seite 6

TextfeldBezeichnungsfeld

Listenfeld

Kombinationsfeld

Optionsfeld

Optionsgruppe

Befehlsschaltfläche

Page 7: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Um die Eigenschaften der Steuerelemente zu verändern klicken Sie mit der rechten Maustaste auf das gewünschte Element und verändern dann die Eigenschaften. Im folgenden werden immer die Wichtigsten genannt.

Notizen

www.merkwerk.de Seite 7

Page 8: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5 Verwaltung der Stammdaten

5.1 Formular Mitarbeiter

Notizen

www.merkwerk.de Seite 8

Page 9: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.1.1 Eigenschaften der Steuerelemente

FormularBeschriftung MitarbeiterDatensatzmarkierer NeinNavigationsschaltflächen NeinTrennlinien NeinRahmenart Dialog

ListenfeldName lstMitarbeiterDatensatzherkunft SELECT tblMitarbeiter.MemoID,

tblMitarbeiter.Nachname, tblMitarbeiter.Vorname, tblMitarbeiter.pkMitarbeiter FROM tblMitarbeiter;

Spaltenzahl 4Spaltenüberschriften JaSpaltenbreiten 2,542cm;2,551cm;2,551cm;0cmGebundene Spalte 4

SchaltflächenName Wie gewünscht, beginnt immer mit cmd...Beschriftung Was soll danach ausgeführt werden.Reihenfolgenposition Wählen Sie, in welcher Reihenfolge die

Elemente angesprochen werden sollen und vergeben die Nummer von 0 bis ....

OptionsgruppeName fraSortierenStandardwert Hier 3, um MemoID zu aktivieren.

OptionsfelderName Wie gewünscht, beginnend mit opt....

TextfeldName txtFilter

KombinationsfeldName cboFilter

Notizen

www.merkwerk.de Seite 9

Page 10: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.1.2 Programmierung

Beim Starten des Programms soll der erste Eintrag im Listenfeld markiert werden.

Öffnen des Formulars:

Private Sub Form_Load()¶

lstMitarbeiter.Value = lstMitarbeiter.ItemData(1)¶

End Sub¶

Zusatz: Listenfeld per Code formatieren / füllen:

Dim sSql As String¶ sSql = "SELECT Vorname, Nachname, MemoID, pkMitarbeiter FROM tblMitarbeiter"¶ lstMitarbeiter.ColumnCount = 4¶ lstMitarbeiter.ColumnWidths = "2,5 cm;2,5 cm; 2,5 cm;0 cm"¶ lstMitarbeiter.BoundColumn = 4¶ lstMitarbeiter.RowSource = sSql¶

Notizen:

www.merkwerk.de Seite 10

Page 11: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Neu:

Private Sub cmdBearbeiten_Click()¶ DoCmd.OpenForm "frmMitarbeiterNeu"¶ End Sub¶

Schaltfläche Bearbeiten:

Private Sub cmdBearbeiten_Click()¶ DoCmd.OpenForm "frmMitarbeiterBearbeiten"¶ End Sub¶

Notizen

www.merkwerk.de Seite 11

Page 12: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Löschen:

Private Sub cmdLoeschen_Click()¶

Dim sSql As String¶

sSql = "DELETE * FROM tblMitarbeiter WHERE pkMitarbeiter =" & lstMitarbeiter.Value¶

Dim oCommand As ADODB.Command¶ Set oCommand = New ADODB.Command¶ oCommand.CommandText = sSql¶ oCommand.ActiveConnection = CurrentProject.AccessConnection¶ oCommand.Execute¶ Set oCommand = Nothing¶

lstMitarbeiter.Requery¶ lstMitarbeiter = lstMitarbeiter.ItemData(1) ¶

End Sub¶Notizen

www.merkwerk.de Seite 12

Page 13: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schön wäre es noch, wenn der Benutzer vor dem Löschen gefragt wird, ob er wirklich löschen will. Das Löschen geschieht mit oCommand.Execute, die Rückfrage könnte folgendermaßen aussehen:

Dim ibox As Integer¶ ibox = MsgBox("Wollen Sie den Datensatz wirklich löschen", vbYesNo, "Datensatz löschen")¶ If ibox = vbYes Then¶

oCommand.Execute¶ End If¶

Notizen

www.merkwerk.de Seite 13

Page 14: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Anzeigen:

Private Sub cmdBearbeiten_Click()¶ DoCmd.OpenForm "frmMitarbeiterAnzeigen"¶ End Sub¶

Schaltfläche Schliessen:

Private Sub cmdSchliessen_Click()¶ DoCmd.Close¶ End Sub¶

Notizen

www.merkwerk.de Seite 14

Page 15: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.2 Neuer Mitarbeiter

Lernziele: Verwendung der AddNew Methode des Recordsets.

Erstellen Sie ein neues Formular mit dem Namen frmMitarbeiterNeu.

Das Formular zur Neuanlage soll die Textfelder zur Eingabe der Stammdaten enthalten.

Notizen

www.merkwerk.de Seite 15

Page 16: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.2.1 Eigenschaften der Steuerelemente

FormularBeschriftung NeuDatensatzmarkierer NeinNavigationsschaltflächen NeinRahmenart Dialog

TextfelderName Wie gewünscht, immer beginnend mit txt...Aktiviert JaGesperrt Nein

SchaltflächenName Beginnend mit cmd...

Notizen

www.merkwerk.de Seite 16

Page 17: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.2.2 Programmierung

Öffnen des Formulars:

Beim Öffnen des Formulars soll der Speichern Schalter deaktiviert sein (das es zu diesem Zeitpunkt nichts zu speichern gibt).

Private Sub Form_Load()¶

cmdSpeichern.Enabled = False¶

End Sub¶

Notizen

www.merkwerk.de Seite 17

Page 18: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Textfeld MemoID:

Es soll nur möglich sein, den Datensatz zu speichern, wenn das Textfeld MemoID mindestens ein Zeichen enthält.

Private Sub txtMemoID_Change()¶ If (Trim(txtMemoID.Text)) = "" Then¶

cmdSpeichern.Enabled = False¶

Else¶

cmdSpeichern.Enabled = True¶ End If¶ End Sub¶

Notizen

www.merkwerk.de Seite 18

Page 19: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Speichern:

Private Sub cmdSpeichern_Click()¶

Dim rst As ADODB.Recordset¶ Set rst = New ADODB.Recordset¶ rst.ActiveConnection = CurrentProject.AccessConnection¶ rst.CursorType = adOpenKeyset¶ rst.LockType = adLockOptimistic¶ rst.Open "tblMitarbeiter"¶ rst.AddNew¶ rst("MemoID") = txtMemoID¶ rst("Vorname") = txtVorname¶ rst("Nachname") = txtNachname¶ rst("Telefon") = txtTelefon¶ rst("Kostenstelle") = txtKostenstelle¶ rst("Abteilung") = txtAbteilung¶ rst.Update¶ rst.Close¶ Forms!frmMitarbeiter!lstMitarbeiter.Requery¶

End Sub¶Notizen

www.merkwerk.de Seite 19

Page 20: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Abbrechen:

Private Sub cmdAbbrechen_Click()¶

DoCmd.Close¶ End Sub¶

Notizen

www.merkwerk.de Seite 20

Page 21: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.3 Mitarbeiter anzeigen

Lernziele: Verwendung von SQL-Strings.

Erstellen Sie ein neues Formular mit dem Namen frmMitarbeiterAnzeigen.

Ein aus der Liste gewählter Datensatz soll angezeigt werden

Mit der Schaltfäche BEARBEITEN kann der angezeigte Datensatz geändert werden.

Die E-Mail Adresse wird automatisch aus Vor- und Nachnamen erstellt.

Notizen

www.merkwerk.de Seite 21

Page 22: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.3.1 Eigenschaften der Steuerelemente

FormularBeschriftung AnzeigenDatensatzmarkierer NeinNavigationsschaltflächen NeinRahmenart Dialog

TextfelderName Wie gewünscht, immer beginnend mit txt...Aktiviert JaGesperrt Nein

SchaltflächenName Beginnend mit cmd...

Notizen

www.merkwerk.de Seite 22

Page 23: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.3.2 Programmierung

Öffnen des Formulars:

Private Sub Form_Load()¶

Dim vPkFromListbox¶ vPkFromListbox = Forms!frmMitarbeiter!lstMitarbeiter.Value¶ Dim sSql As String¶ sSql = "SELECT * FROM tblMitarbeiter WHERE pkMitarbeiter = " & vPkFromListbox¶

Dim rst As ADODB.Recordset¶ Set rst = New ADODB.Recordset¶ rst.Open sSql, CurrentProject.AccessConnection, adOpenKeyset, adLockReadOnly, adCmdText¶

txtEMail = rst("Vorname") & "." & rst("Nachname") & "@Firma.de"¶

txtMemoID = rst("MemoID")¶ txtVorname = rst("Vorname")¶ txtNachname = rst("Nachname")¶ txtTelefon = rst("Telefon")¶ txtKostenstelle = rst("Kostenstelle")¶ txtAbteilung = rst("Abteilung")¶

rst.Close¶End Sub¶

Notizen

www.merkwerk.de Seite 23

Page 24: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Bearbeiten:

Private Sub cmdBearbeiten_Click()¶

DoCmd.Close¶ DoCmd.OpenForm "frmMitarbeiterBearbeiten"¶ End Sub¶

Schaltfläche Abbrechen:

Private Sub cmdAbbrechen_Click()¶

DoCmd.Close¶ End Sub¶

Notizen

www.merkwerk.de Seite 24

Page 25: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.4 Mitarbeiter bearbeiten

Lernziele: Parameterübergabe und verwenden von SQL-Strings, Recordsetmethoden

Erstellen Sie ein Formular mit dem Namen frmMitarbeiterBearbeiten.

Das Formular soll einen in der Liste gewählten Datensatz auslesen und Änderungen an diesem in der Tabelle speichern.

Notizen

www.merkwerk.de Seite 25

Page 26: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.4.1 Eigenschaften der Steuerelemente

DetailbereichBeschriftung BearbeitenBildlaufleisten NeinDatensatzmarkierer NeinNavigationsschaltflächen NeinRahmenart DialogGebunden Ja

TextfelderName Wie gewünscht, immer beginnend mit txt...Aktiviert JaGesperrt Nein

SchaltflächenName Beginnend mit cmd...

Notizen

www.merkwerk.de Seite 26

Page 27: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

5.4.2 Programmierung

Öffnen des Formulars:

Private Sub Form_Load()¶ Dim vPkFromListbox as Variant¶ vPkFromListbox = Forms!frmMitarbeiter!lstMitarbeiter.Value¶ Dim sSql As String¶ sSql = "SELECT * FROM tblMitarbeiter WHERE pkMitarbeiter = " & vPkFromListbox¶ Dim rst As ADODB.Recordset¶ Set rst = New ADODB.Recordset¶ rst.Open sSql, CurrentProject.AccessConnection, adOpenKeyset, adLockReadOnly, adCmdText¶

txtMemoID = rst("MemoID")¶ txtVorname = rst("Vorname")¶ txtNachname = rst("Nachname")¶ txtTelefon = rst("Telefon")¶ txtKostenstelle = rst("Kostenstelle")¶ txtAbteilung = rst("Abteilung")¶ rst.Close¶ End Sub¶Notizen

www.merkwerk.de Seite 27

Page 28: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Textfeld MemoID:

Es soll nur möglich sein, den Datensatz zu speichern, wenn das Textfeld MemoID mindestens ein Zeichen enthält.

Private Sub txtMemoID_Change()¶ If (Trim(txtMemoID.Text)) = "" Then¶ cmdSpeichern.Enabled = False¶ Else¶ cmdSpeichern.Enabled = True¶ End If¶ End Sub¶

Schaltfläche Abbrechen:

Private Sub cmdAbbrechen_Click()¶

DoCmd.Close¶ End Sub¶

Notizen

www.merkwerk.de Seite 28

Page 29: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

Schaltfläche Speichern:

Private Sub cmdSpeichern_Click()¶

Dim vPkFromListbox¶ vPkFromListbox = Forms!frmMitarbeiter!lstMitarbeiter.Value¶ Dim sSql As String¶ sSql = "SELECT * FROM tblMitarbeiter WHERE pkMitarbeiter = " & CStr(vPkFromListbox) ¶ Dim rst As ADODB.Recordset¶ Set rst = New ADODB.Recordset¶ rst.Open sSql, CurrentProject.AccessConnection, adOpenKeyset, adLockOptimistic, adCmdText¶ rst("MemoID") = txtMemoID¶ rst("Vorname") = txtVorname¶ rst("Nachname") = txtNachname¶ rst("Telefon") = txtTelefon¶ rst("Kostenstelle") = txtKostenstelle¶ rst("Abteilung") = txtAbteilung¶ rst.Update¶ rst.Close¶ Forms!frmMitarbeiter!lstMitarbeiter.Requery¶ DoCmd.Close ¶End Sub¶

Notizen

www.merkwerk.de Seite 29

Page 30: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

6 Die Such-/Sortierfunktion

Lernziele: Textoperation, die Verwendung von SQL-Strings, Funktionen.

In diesem Kapitel wird die bereits angesprochene Such- und Sortierfunktion erläutert.Im Formular frmMitarbeiter wurde diese Funktion vorgesehen, um die Liste mit den Stammdaten nach vorgegebenen Kriterien zu Filtern und danach auch zu sortieren.

Notizen

www.merkwerk.de Seite 30

Page 31: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

6.1.1 Sortieren:

Private Sub fraSortieren_Click()¶

Const sSql As String = "SELECT MemoID, Vorname, Nachname, pkMitarbeiter FROM tbMitarbeiter ORDER BY "¶ Dim sSort As String

Select Case fraSortieren.Value¶ Case 1¶ sSort = " Nachname;" ¶ Case 2¶ sSort = " Vorname;" ¶ End Select¶ lstMitarbeiter.RowSource = sSql & sSort¶

End Sub¶Notizen

www.merkwerk.de Seite 31

Page 32: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

6.1.2 Suchen:

Private Sub cmdSuchen_Click()¶

Dim sSuchen As String¶ sSuchen = "SELECT MemoID, Vorname, Nachname, pkMitarbeiter FROM tblMitarbeiter "¶ sSuchen = sSuchen & "WHERE " & cboFilter & " LIKE '" & txtFilter & "*'"¶

lstMitarbeiter.RowSource = sSuchen¶ End Sub¶Notizen

www.merkwerk.de Seite 32

Page 33: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

7 Fehlerroutine

Um nicht vorgesehene Fehler abzufangen, bietet Visual Basic das Fehlerobjekt.

Private Sub cmdNeuerMitabeiter_Click()¶On Error GoTo Err_cmdNeuerMitabeiter_Click¶

Hier steht die eigentliche ProzedurExit_cmdNeuerMitabeiter_Click: ¶ Exit Sub¶

Err_cmdNeuerMitabeiter_Click: ¶ MsgBox Err.Description¶ Resume Exit_cmdNeuerMitabeiter_Click¶

End Sub¶Notizen

www.merkwerk.de Seite 33

Page 34: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

8 Datensätze nach Excel exportieren

Private Sub cmdDatenNach_Excel_Click()¶

Dim rs As ADODB.Recordset¶ Set rs = New ADODB.Recordset¶ rs.ActiveConnection = CurrentProject.AccessConnection¶ rs.CursorType = adOpenKeyset¶ rs.LockType = adLockReadOnly¶ rs.Open "tblMitarbeiter"¶ Dim objExcel As Excel.Application¶ Set objExcel = New Excel.Application¶ objExcel.Visible = True¶ objExcel.Workbooks.Add¶ objExcel.Cursor = xlWait¶ objExcel.Range("A1").Value = rs.Fields(1).Name¶ objExcel.Range("B1").Value = rs.Fields(2).Name ¶ objExcel.Range("C1").Value = rs.Fields(3).Name ¶ objExcel.Range("D1").Value = rs.Fields(4).Name ¶ objExcel.Range("A2").Select¶ Do Until rst.EOF¶

With objExcel¶ .ActiveCell.Value = rs("MemoID")¶ .ActiveCell.Offset(0, 1).Select¶ .ActiveCell.Value = rs("Vorname")¶ .ActiveCell.Offset(0, 1).Select¶ .ActiveCell.Value = rs("Nachname")¶ .ActiveCell.Offset(0, 1).Select¶ .ActiveCell.Value = rs("Telefon")¶ .ActiveCell.Offset(1, -3).Select¶ End With¶ rs.MoveNext¶ Loop¶ objExcel.Cursor = xlDefault¶ rs.Close¶ Set objExcel = Nothing¶ Set rs = Nothing¶

End Sub¶

www.merkwerk.de Seite 34

Page 35: Access 2003 Programmierung mit Visual Basic - · PDF file1 Lernziele Ziel der Schulung ist es, Ihnen verschiedene Möglichkeiten der ACCESS Programmierung zu zeigen. Lernziele sind

www.merkwerk.de Seite 35