Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

VBA-Schulung 2003-03-27/28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung.

Ähnliche Präsentationen


Präsentation zum Thema: "VBA-Schulung 2003-03-27/28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung."—  Präsentation transkript:

1

2 VBA-Schulung /28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung

3 VBA-Schulung /28Lesen und Schreiben von Daten 3 Überblick Entwicklung von Formularen Datenverarbeitung Daten lesen, Daten bearbeiten, Daten schreiben  Klassisches EVA (Eingabe, Verarbeitung, Ausgabe)-Prinzip

4 VBA-Schulung /28Lesen und Schreiben von Daten 4 Ziel Erleichterung der Erfassung von Rechnungspositionen mit Hilfe eines VBA-Formulars: „Rechnungs-Assistent“ Aufruf aus dem Menü „Aktionen“ Anzeige aller Artikel Erstellen von neuen Rechnungsdatensätzen und neuen Rechnungspositionen Plausibilitätsprüfungen

5 VBA-Schulung /28Lesen und Schreiben von Daten 5 Formular Neues Formular erstellen „Einfügen - UserForm“ Name: FInvoiceWizard Caption: Rechnungs-Assistent

6 VBA-Schulung /28Lesen und Schreiben von Daten 6 Formular Steuerelemente für den Rechnungsdatensatz fraRechnung (Frame) dtpDatum (DTPicker) cboVersand (ComboBox) cboZahlungsweise (ComboBox) cboLieferart (ComboBox) + Beschriftugen (Labels) cmdNeueRechnung (CommandButton)

7 VBA-Schulung /28Lesen und Schreiben von Daten 7 Formular Steuerelemente für die Rechnungspositionen fraRechnungspositionen (Frame) + Beschriftugen (Labels) cboEinheit (ComboBox) txtPreis (TextBox) lblGesamt (Label) txtAnzahl (TextBox) txtArtikel (TextBox) cmdNeuePosition (CommandButton)

8 VBA-Schulung /28Lesen und Schreiben von Daten 8 Formular Steuerelement für die Artikelliste lvwArtikel (ListView) cmdClose (CommandButton)

9 VBA-Schulung /28Lesen und Schreiben von Daten 9 Formular

10 VBA-Schulung /28Lesen und Schreiben von Daten 10 Haben Sie Fragen?

11 VBA-Schulung /28Lesen und Schreiben von Daten 11 Quellcode Benötigte Prozeduren: Initialisieren der Steuerelemente Einlesen von persistenten Variablen Einlesen der Artikelliste Anlegen einer neuen Rechnung Anlegen von Rechnungspositionen Übernehmen der Artikeldaten in Steuerelemente der Rechnungspositionen Anzeige der Summe der aktuellen Position

12 VBA-Schulung /28Lesen und Schreiben von Daten 12 Quellcode Deklarationen auf Modulebene ' Konstante für Fehlerbehandlung Private Const csErrSource = "FInvoiceWizard" ' Variablen für Tabellenobjekte Private mtblInvoices As OrgDbServer31.Table Private mtblPositions As OrgDbServer31.Table Private mtblArticles As OrgDbServer31.Table

13 VBA-Schulung /28Lesen und Schreiben von Daten 13 Quellcode Prozedur Init() Public Sub Init() ' Initialisierungen: Einlesen der Auswahllisten, Initialisieren der modulweiten Variablen Dim pvars As PersistVars Dim itm As ListItem On Error GoTo ErrHandler

14 VBA-Schulung /28Lesen und Schreiben von Daten 14 Quellcode Prozedur Init() ' Variablen initialisieren Set mtblInvoices = gTables.GetTable(dbtblRechnungen) Set mtblPositions = gTables.GetTable(dbtblRechnungspositionen) Set mtblArticles = gTables.GetTable(dbtblArtikel)

15 VBA-Schulung /28Lesen und Schreiben von Daten 15 Quellcode Prozedur Init() ' Auswahllisten einlesen Set pvars = Database.Parser.PersistVars With gobjDatabaseSupport.LoadPersVarsCombobox pvars("lt_Versandkosten"), cboVersand.LoadPersVarsCombobox pvars("lt_Zahlungsweise"), cboZahlungsweise.LoadPersVarsCombobox pvars("lt_Lieferart"), cboLieferart.LoadPersVarsCombobox pvars("lt_Einheit"), cboEinheit End With

16 VBA-Schulung /28Lesen und Schreiben von Daten 16 Quellcode Prozedur Init() ' Artikel einlesen lvwArtikel.ListItems.Clear With mtblArticles.GoTop ORGDB_NAV_NOEVENTS Do While Not.EOF Set itm = lvwArtikel.ListItems.Add(Text:=.Fields("Bezeichnung").Value) itm.ListSubItems.Add Text:=.Fields("Art").Value itm.ListSubItems.Add Text:=.Fields("Einheit").Value itm.ListSubItems.Add Text:=.Fields("Nettopreis").Value.Skip 1, ORGDB_NAV_NOEVENTS Loop End With

17 VBA-Schulung /28Lesen und Schreiben von Daten 17 Quellcode Prozedur Init() Exit Sub ErrHandler: gErrors.DisplayError csErrSource & ".Init" End Sub

18 VBA-Schulung /28Lesen und Schreiben von Daten 18 Quellcode Aufrufprozeduren Im Modul Invoicing neue Prozedur ShowInvoiceWizard() Public Sub ShowInvoiceWizard() ' Rechnungs-Assistenten aufrufen Dim frmWizard As New FInvoiceWizard With frmWizard.Init.Show vbModal End With End Sub

19 VBA-Schulung /28Lesen und Schreiben von Daten 19 Quellcode Aufrufprozeduren Im Modul UserMacros neue Prozedur ShowInvoiceWizard() Public Sub ShowInvoiceWizard() ' Rechnungs-Assistenten aufrufen InitGlobalObjects Invoicing.ShowInvoiceWizard End Sub

20 VBA-Schulung /28Lesen und Schreiben von Daten 20 Quellcode Erster Test: Im Direktbereich (Strg+G) UserMacros.ShowInvoiceWizard eingeben

21 VBA-Schulung /28Lesen und Schreiben von Daten 21 Es funktioniert!

22 VBA-Schulung /28Lesen und Schreiben von Daten 22 Haben Sie Fragen?

23 VBA-Schulung /28Lesen und Schreiben von Daten 23 Quellcode Wir machen weiter: Rechnung speichern Private Sub cmdNeueRechnung_Click() ' Neuen Rechnungsdatensatz anlegen On Error GoTo ErrHandler... Exit Sub ErrHandler: gErrors.DisplayError csErrSource & ".cmdNeueRechnung_Click" End Sub

24 VBA-Schulung /28Lesen und Schreiben von Daten 24 Quellcode Rechnung speichern II With mtblInvoices ' Datensatzpuffer leeren und Feldvorbelegungen auswerten.Record =.DefaultRecord.Fields("Datum").Value = dtpDatum.Value.Fields("Versandkosten").Value = cboVersand.Text.Fields("Zahlungsweise").Value = cboZahlungsweise.Text.Fields("Lieferart").Value = cboLieferart.Text.Insert End With

25 VBA-Schulung /28Lesen und Schreiben von Daten 25 Quellcode Position speichern Private Sub cmdNeuePosition_Click() ' Neue Rechnungsposition anlegen On Error GoTo ErrHandler With mtblPositions ' Datensatzpuffer leeren und Feldvorbelegungen auswerten.Record =.DefaultRecord.Fields("Artikel").Value = txtArtikel.Value.Fields("Anzahl").Value = txtAnzahl.Text.Fields("Einheit").Value = cboEinheit.Text.Fields("Nettopreis").Value = txtPreis.Text.Insert End With

26 VBA-Schulung /28Lesen und Schreiben von Daten 26 Quellcode Artikeldaten übernehmen Private Sub lvwArtikel_DblClick() ' Beim Doppelklick auf die Artikelliste sollen die Daten des ausgewählten ' Artikels in die Rechnungsposition übernommen werden On Error GoTo ErrHandler... Exit Sub ErrHandler: gErrors.DisplayError csErrSource & ".lvwArtikel_DblClick" End Sub

27 VBA-Schulung /28Lesen und Schreiben von Daten 27 Quellcode Artikeldaten übernehmen II ' Gibt es einen ausgewählten Artikel? If lvwArtikel.SelectedItem Is Nothing Then Exit Sub ' Daten übernehmen With lvwArtikel.SelectedItem txtArtikel.Text =.Text cboEinheit.Text =.ListSubItems(2).Text txtPreis.Text =.ListSubItems(3).Text End With ' Anzahl auf 1 setzen txtAnzahl.Text = "1"

28 VBA-Schulung /28Lesen und Schreiben von Daten 28 Quellcode Summe der aktuellen Position anzeigen Aufruf von txtAnzahl_Change() und txtPreis_Change() Private Sub SummeAktualisieren() ' Gesamtpreis berechnen lblGesamt.Caption = Val(txtAnzahl.Text) * Val(txtPreis.Text) End Sub

29 VBA-Schulung /28Lesen und Schreiben von Daten 29 Quellcode Formular schliessen Private Sub cmdClose_Click() ' Formular schließen Me.Hide End Sub

30 VBA-Schulung /28Lesen und Schreiben von Daten 30 Oberfläche Wir binden das Makro in die Oberfläche ein: Über den Menüpunkt Aktionen Über eine Schaltfläche Wir testen...

31 VBA-Schulung /28Lesen und Schreiben von Daten 31 Es funktioniert noch immer und noch besser!

32 VBA-Schulung /28Lesen und Schreiben von Daten 32 Quellcode Plausibilitätsprüfungen Artikelname darf nicht leer sein Anzahl muss grösser als 0 sein Wenn eine dieser Bedingungen nicht erfüllt ist, dann soll die Position gar nicht gespeichert werden Der Cursor soll in das fehlerverursachende Eingabefeld platziert werden

33 VBA-Schulung /28Lesen und Schreiben von Daten 33 Quellcode Private Function PlausibilitätsprüfungPosition() As Boolean ' Plausibilitätsprüfung der Angaben zur Rechnungsposition ' Beim ersten Fehler wird die Funktion verlassen ' Artikelname darf nicht leer sein If txtArtikel.Text = "" Then MsgBox "Bitte geben Sie einen Artikelnamen ein.", vbExclamation, MsgBoxTitle txtArtikel.SetFocus PlausibilitätsprüfungPosition = False Exit Function End If...

34 VBA-Schulung /28Lesen und Schreiben von Daten 34 Quellcode... ' Anzahl muss größer als 0 sein If Val(txtAnzahl.Text) = 0 Then MsgBox "Anzahl muss größer als 0 sein.", vbExclamation, MsgBoxTitle txtAnzahl.SetFocus PlausibilitätsprüfungPosition = False Exit Function End If ' Wenn wir hier angelangt sind, dann sind keine Fehler aufgetreten PlausibilitätsprüfungPosition = True End Function

35 VBA-Schulung /28Lesen und Schreiben von Daten 35 Quellcode Aufruf der Plausibilitätsprüfung Private Sub cmdNeuePosition_Click() ' Neuen Rechnungsposition anlegen On Error GoTo ErrHandler ' Plausibilitätsprüfung der Angaben If Not PlausibilitätsprüfungPosition Then Exit Sub With mtblPositions...

36 VBA-Schulung /28Lesen und Schreiben von Daten 36 Oberfläche Wir testen...

37 VBA-Schulung /28Lesen und Schreiben von Daten 37 Haben Sie Fragen?

38 VBA-Schulung /28Lesen und Schreiben von Daten 38 Vielen Dank für Ihre Aufmerksamkeit


Herunterladen ppt "VBA-Schulung 2003-03-27/28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung."

Ähnliche Präsentationen


Google-Anzeigen