+ All Categories
Home > Documents > VBA-Schulung 2003-03-27/28Lesen und Schreiben von Daten 2 Erstellung von Formularen und...

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

Date post: 06-Apr-2015
Category:
Upload: franziska-bloss
View: 108 times
Download: 3 times
Share this document with a friend
38
Transcript
Page 1: VBA-Schulung 2003-03-27/28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung.
Page 2: VBA-Schulung 2003-03-27/28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung.

Lesen und Schreiben von Daten

2VBA-Schulung 2003-03-27/28

Erstellung von Formularen und

Datenverarbeitung

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

Lesen und Schreiben von Daten

3VBA-Schulung 2003-03-27/28

ÜberblickEntwicklung von Formularen Datenverarbeitung

Daten lesen,Daten bearbeiten,Daten schreiben

Klassisches EVA (Eingabe, Verarbeitung, Ausgabe)-Prinzip

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

Lesen und Schreiben von Daten

4VBA-Schulung 2003-03-27/28

ZielErleichterung der Erfassung von Rechnungspositionen mit Hilfe eines VBA-Formulars:„Rechnungs-Assistent“

Aufruf aus dem Menü „Aktionen“Anzeige aller ArtikelErstellen von neuen Rechnungsdatensätzen und neuen RechnungspositionenPlausibilitätsprüfungen

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

Lesen und Schreiben von Daten

5VBA-Schulung 2003-03-27/28

FormularNeues Formular erstellen

„Einfügen - UserForm“

Name: FInvoiceWizardCaption: Rechnungs-Assistent

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

Lesen und Schreiben von Daten

6VBA-Schulung 2003-03-27/28

FormularSteuerelemente für den Rechnungsdatensatz

fraRechnung (Frame)

dtpDatum (DTPicker)

cboVersand (ComboBox)

cboZahlungsweise (ComboBox)

cboLieferart (ComboBox)

+ Beschriftugen

(Labels)

cmdNeueRechnung

(CommandButton)

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

Lesen und Schreiben von Daten

7VBA-Schulung 2003-03-27/28

FormularSteuerelemente für die Rechnungspositionen

fraRechnungspositionen (Frame)

+ Beschriftugen

(Labels)

cboEinheit (ComboBox)

txtPreis (TextBox)

lblGesamt (Label)

txtAnzahl (TextBox)

txtArtikel (TextBox)

cmdNeuePosition (CommandButton)

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

Lesen und Schreiben von Daten

8VBA-Schulung 2003-03-27/28

FormularSteuerelement für die Artikelliste

lvwArtikel (ListView)

cmdClose (CommandButton)

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

Lesen und Schreiben von Daten

9VBA-Schulung 2003-03-27/28

Formular

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

Lesen und Schreiben von Daten

10VBA-Schulung 2003-03-27/28

Haben Sie

Fragen?

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

Lesen und Schreiben von Daten

11VBA-Schulung 2003-03-27/28

QuellcodeBenötigte Prozeduren:

Initialisieren der SteuerelementeEinlesen von persistenten VariablenEinlesen der Artikelliste

Anlegen einer neuen RechnungAnlegen von RechnungspositionenÜbernehmen der Artikeldaten in Steuerelemente der RechnungspositionenAnzeige der Summe der aktuellen Position

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

Lesen und Schreiben von Daten

12VBA-Schulung 2003-03-27/28

QuellcodeDeklarationen 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

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

Lesen und Schreiben von Daten

13VBA-Schulung 2003-03-27/28

QuellcodeProzedur Init()

Public Sub Init()

' Initialisierungen: Einlesen der Auswahllisten, Initialisieren der modulweiten Variablen

Dim pvars As PersistVars

Dim itm As ListItem

On Error GoTo ErrHandler

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

Lesen und Schreiben von Daten

14VBA-Schulung 2003-03-27/28

QuellcodeProzedur Init()

' Variablen initialisieren

Set mtblInvoices = gTables.GetTable(dbtblRechnungen)

Set mtblPositions = gTables.GetTable(dbtblRechnungspositionen)

Set mtblArticles = gTables.GetTable(dbtblArtikel)

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

Lesen und Schreiben von Daten

15VBA-Schulung 2003-03-27/28

QuellcodeProzedur 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

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

Lesen und Schreiben von Daten

16VBA-Schulung 2003-03-27/28

QuellcodeProzedur 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

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

Lesen und Schreiben von Daten

17VBA-Schulung 2003-03-27/28

QuellcodeProzedur Init()

Exit Sub

ErrHandler:

gErrors.DisplayError csErrSource & ".Init"

End Sub

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

Lesen und Schreiben von Daten

18VBA-Schulung 2003-03-27/28

QuellcodeAufrufprozeduren

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

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

Lesen und Schreiben von Daten

19VBA-Schulung 2003-03-27/28

QuellcodeAufrufprozeduren

Im Modul UserMacros neue Prozedur ShowInvoiceWizard()

Public Sub ShowInvoiceWizard()

' Rechnungs-Assistenten aufrufen

InitGlobalObjects

Invoicing.ShowInvoiceWizard

End Sub

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

Lesen und Schreiben von Daten

20VBA-Schulung 2003-03-27/28

QuellcodeErster Test: Im Direktbereich (Strg+G)

UserMacros.ShowInvoiceWizard

eingeben

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

Lesen und Schreiben von Daten

21VBA-Schulung 2003-03-27/28

Es funktioniert!

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

Lesen und Schreiben von Daten

22VBA-Schulung 2003-03-27/28

Haben Sie

Fragen?

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

Lesen und Schreiben von Daten

23VBA-Schulung 2003-03-27/28

QuellcodeWir 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

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

Lesen und Schreiben von Daten

24VBA-Schulung 2003-03-27/28

QuellcodeRechnung 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

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

Lesen und Schreiben von Daten

25VBA-Schulung 2003-03-27/28

QuellcodePosition 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

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

Lesen und Schreiben von Daten

26VBA-Schulung 2003-03-27/28

QuellcodeArtikeldaten ü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

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

Lesen und Schreiben von Daten

27VBA-Schulung 2003-03-27/28

QuellcodeArtikeldaten ü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"

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

Lesen und Schreiben von Daten

28VBA-Schulung 2003-03-27/28

QuellcodeSumme 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

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

Lesen und Schreiben von Daten

29VBA-Schulung 2003-03-27/28

QuellcodeFormular schliessen

Private Sub cmdClose_Click()

' Formular schließen

Me.Hide

End Sub

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

Lesen und Schreiben von Daten

30VBA-Schulung 2003-03-27/28

OberflächeWir binden das Makro in die Oberfläche ein:

Über den Menüpunkt AktionenÜber eine Schaltfläche

Wir testen...

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

Lesen und Schreiben von Daten

31VBA-Schulung 2003-03-27/28

Es funktioniert noch immer und noch

besser!

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

Lesen und Schreiben von Daten

32VBA-Schulung 2003-03-27/28

QuellcodePlausibilitätsprüfungen

Artikelname darf nicht leer seinAnzahl muss grösser als 0 seinWenn eine dieser Bedingungen nicht erfüllt ist, dann soll die Position gar nicht gespeichert werdenDer Cursor soll in das fehlerverursachende Eingabefeld platziert werden

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

Lesen und Schreiben von Daten

33VBA-Schulung 2003-03-27/28

QuellcodePrivate 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

...

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

Lesen und Schreiben von Daten

34VBA-Schulung 2003-03-27/28

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

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

Lesen und Schreiben von Daten

35VBA-Schulung 2003-03-27/28

QuellcodeAufruf 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

...

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

Lesen und Schreiben von Daten

36VBA-Schulung 2003-03-27/28

OberflächeWir testen...

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

Lesen und Schreiben von Daten

37VBA-Schulung 2003-03-27/28

Haben Sie

Fragen?

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

Lesen und Schreiben von Daten

38VBA-Schulung 2003-03-27/28

Vielen Dank für Ihre Aufmerksamkeit


Recommended