VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.
-
Upload
chlotichilda-schmitzer -
Category
Documents
-
view
109 -
download
0
Transcript of VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.
Makros in der Standard-DB
2VBA-Schulung 2003-03-27/28
Makros in der Standard-Datenbank
Makros in der Standard-DB
3VBA-Schulung 2003-03-27/28
Auto-MakrosAuto-Makros werden in bestimmten Fällen automatisch von orgData aufgerufen (es sind keine Events)
AutoOpen Beim Starten von orgDataAutoClose Beim Schliessen von orgDataCloseRequest „Kurz“ vor dem Schliessen von orgDataModeChanged beim Wechsels vom Benutzer- in den Konfigurationsmodus und umgekehrt, auch beim Starten der Datenbank
Auto-Makros müssen sich im Modul Macros befinden
Makros in der Standard-DB
4VBA-Schulung 2003-03-27/28
Modul MacrosNur Prozeduren aus den Modulen Macros und UserMacros können
mit Schaltflächen verknüpft oderim Menü Aktionen angezeigt werden.
Die zu verknüpfende Prozedur muss als öffentlich (Public) deklariert sein.Public Sub ShowAlarms()
Eigene Erweiterungen sollten im Modul UserMacros untergebracht werden
Makros in der Standard-DB
5VBA-Schulung 2003-03-27/28
ButtonMacrosEin „Zwischenmodul“ Hinzugefügt, um das Modul Macros zu „entlasten“
Im Modul Macros hauptsächlich nur Aufrufe der entsprechenden Prozeduren aus ButtonMacrosMöglichkeit der Parametrisierung, z.B. :
ButtonMacros.DialNumber "Telefon1()"
Makros in der Standard-DB
6VBA-Schulung 2003-03-27/28
ModuleWeitere Module:
AdminTools: Administrator-ToolsGlobalDefs: Deklarationen von globalen Objektvariablen und KonstantenIconTools: Tools für Icons und SchaltflächenImageListTools: Tools für AbbildungslistenInvoicing: Aufrufmodul für FakturierungsfunktionenMarkTools: Tools für MarkierungenQuicksort: SortieralgorithmusRegistry: Funktionen für den Zugriff auf die RegistryTools: Allgemeine, von mehreren Modulen/Klassen benutzte ToolsWinAPI: Funktionen für den Zugriff auf die windows-API (Application Programming Interface)
Makros in der Standard-DB
7VBA-Schulung 2003-03-27/28
CDatabaseSupport
CDatabaseSupport: Hilfsklasse mit mehreren allgemeinen unterstützenden Prozeduren, u.a. für das Füllen von Comboboxen mit allen ...
Feldern einer Tabelle: LoadFieldsComboboxIndezes einer Tabelle: LoadIndexesComboboxTabellen: LoadTablesComboboxWerten einer persistenten (Feld-)Variable: LoadPersVarsComboboxDatenbank-Benutzern: LoadUsersComboboxBenutzer-Markierungen: LoadUserMarksComboboxSummierungsausdrücken: LoadSumExpressionsCombobox
Makros in der Standard-DB
8VBA-Schulung 2003-03-27/28
CDatabaseSupport
Beispiel für LoadXXXComboBox:Neues Formular erstellen FDatabaseSupportExample:
cboTables
cboFields
cboIndexes
cboUsers
cboCreditCard
cmdClose
Makros in der Standard-DB
9VBA-Schulung 2003-03-27/28
CDatabaseSupport
Private Sub UserForm_Initialize()
InitGlobalObjects
With gobjDatabaseSupport
.LoadTablesCombobox cboTables
.LoadUsersCombobox cboUsers
.LoadPersVarsCombobox Database.Parser.PersistVars("lt_Kreditkarte"), cboCreditCard
End With
End Sub
Makros in der Standard-DB
10VBA-Schulung 2003-03-27/28
CDatabaseSupport
Private Sub cboTables_Click()
With gobjDatabaseSupport
.LoadFieldsCombobox Database.Tables(cboTables.Value), cboFields
.LoadIndexesCombobox Database.Tables(cboTables.Value), cboIndexes
End With
End Sub
Private Sub cmdClose_Click()
Me.Hide
End Sub
Makros in der Standard-DB
11VBA-Schulung 2003-03-27/28
CDatabaseSupport
LoadXXXComboBox: Als Parameter kann anstatt einer ComboBox auch eine ListBox übergeben werden
Makros in der Standard-DB
12VBA-Schulung 2003-03-27/28
CDatabaseSupport
GetItem(pTable As OrgDbServer31.Table)
Liefert eine den aktuellen Datensatz identifizierende Zeichenkette, z. B. den Namen für Adressen oder Betreff für Dokumente.Der auszuwertende Ausdruck sollte sich für jede Tabelle in der Tabelleneigenschaft "ItemExpression" befinden.
Makros in der Standard-DB
13VBA-Schulung 2003-03-27/28
CDatabaseSupport
GetItemName(pTable As OrgDbServer31.Table)
Liefert eine Bezeichnung für Datensätze der übergebenen Tabelle, z. B. "Adresse" für die Tabelle "Adressen" Die Bezeichnung sollte sich für jede Tabelle in der Tabelleneigenschaft "ItemName" befinden.
Makros in der Standard-DB
14VBA-Schulung 2003-03-27/28
CDatabaseSupport
GetItem und GetItemName testen
txtItemName
txtItem
Makros in der Standard-DB
15VBA-Schulung 2003-03-27/28
CDatabaseSupportPrivate Sub cboTables_Click()
Dim tbl As OrgDbServer31.Table
Set tbl = Database.Tables(cboTables.Value)
With gobjDatabaseSupport
.LoadFieldsCombobox tbl, cboFields
.LoadIndexesCombobox tbl, cboIndexes
txtItem.Text = .GetItem(tbl)
txtItemName.Text = .GetItemName(tbl)
End With
End Sub
Makros in der Standard-DB
16VBA-Schulung 2003-03-27/28
CConfigCConfig: Hilfsklasse mit Prozeduren für das Lesen und Schreiben von:
Benutzer-,Tabellen- oderDatenbank-
Eigenschaften
Makros in der Standard-DB
17VBA-Schulung 2003-03-27/28
CConfigRead- / WritePrivateSetting
Private BenutzereigenschaftenNur für den aktuellen Benutzer
Read- / WriteTableSettingTabelleneigenschaftenSchreiben nur mit Datenbankverwaltungsrechten
Read- / WriteDatabaseSettingDatenbankeigenschaftenSchreiben nur mit Datenbankverwaltungsrechten
Makros in der Standard-DB
18VBA-Schulung 2003-03-27/28
CConfigRead- / WriteXXXSetting werden benutzt um dauerhaft Einstellungen zu speichern.Insbesondere Read- / WritePrivateSetting werden benutzt um Benutzereinstellungen zu speichern
Beispiel: FUserSettings.SaveSettings
Makros in der Standard-DB
19VBA-Schulung 2003-03-27/28
CTablePropertiesCTableProperties: Speichert die aktuellen Tabelleneinstellungen und stellt sie wieder herFolgende Einstellungen werden gespeichert:
Aktueller DatensatzSichtbare Datensätze (alle / nur markierte / nur nicht markierte)Aktueller Index
Makros in der Standard-DB
20VBA-Schulung 2003-03-27/28
CTablePropertiesCTableProperties benutzen wir, wenn wir in einer Tabelle Informationen aus anderen Datensätzen benötigen, dem Benutzer jedoch seine aktuelle Ansicht nicht verändern wollen.Bsp: CInvoicing.UpdateTurnover
Makros in der Standard-DB
21VBA-Schulung 2003-03-27/28
CTableProperties Dim objProp As New CTableProperties
' Aktuelle Einstelungen merken
objProp.Init gTables.GetTable(dbtblArtikel)
objProp.Save
' diverse Aktionen durchführen...
With gTables.GetTable(dbtblArtikel)
.Indexes.SetActiveIndex "ID", ORGDB_NAV_NOEVENTS
.SetShowMarked True, ORGDB_NAV_NOEVENTS
.SetShowNotMarked True, ORGDB_NAV_NOEVENTS
.GoTop ORGDB_NAV_NOEVENTS
...
End With
' Einstellungen wiederherstellen
objProp.Restore
Makros in der Standard-DB
22VBA-Schulung 2003-03-27/28
CTablesCTables kapselt die Namen der Tabellen in der DatenbankDank der Auflistung CTablesDatabaseTablesEnum und Intellisense können wir schneller Quellcode schreiben:gTables.GetTable(dbtblAktivitäten)
Makros in der Standard-DB
23VBA-Schulung 2003-03-27/28
CApplications, CAppX
CApplications kapselt den Aufruf von anderen Anwendungen über COMWird aufgerufen von den spezifischen Klassen
CAppOutlookCAppPhoneCAppPrintCAppWord
Diese Klassen kapseln spezifische Funktionen der jeweiligen Anwendung
Makros in der Standard-DB
24VBA-Schulung 2003-03-27/28
COrgDataEventsCOrgDataEvents:
Fängt OrgData-Events abErmöglich die Überlagerung und Deaktivierung von Standard-MenüeinträgenProzedur mOrgData_Command:Ausführung von eigenen Makros, über einen Parameter kann bestimmt werden, ob das Standard-Verhalten ausgeführt werden sollProzedur mOrgData_CommandAvailable:Deaktivierung von Menüpunkten, wenn Menüpunkte nur bei Erfüllung von bestimmten Bedingungen zur Verfügung stehen sollen
Makros in der Standard-DB
25VBA-Schulung 2003-03-27/28
Haben Sie
Fragen?
Makros in der Standard-DB
26VBA-Schulung 2003-03-27/28
Vielen Dank für Ihre Aufmerksamkeit