Sign in Join
Wiki copytemporary

AccessAutomation/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: AccessAutomation/de

OldNewLine
1+\
2+Zurück zur [[Office Automation/de|Office Automation]].\
3+\
4+\
5+=Access= Bei der OleAutomatisierung von Acces gibt es ein grosse Probleme. Es werden nicht alle Methoden von der OleAutomatisierung unterstützt.\
6+Das heisst sie stehen dem Programmierer nicht zur Verfügung. Daher ist das Arbeiten mit Access über den Weg der OleAutomatisierung nur eingeschränkt möglich.\
7+\
8+==Sicherheitsabfrage== Die Sicherheitsabfrage, die (ab Access 2003) bei jedem start von Access erscheint stört die meisten bei der Automatisierung von Access.\
9+Um sie Sicherheitsabfrage (Beispiel: Access 2003) zu umgehen gibt es zwei Möglichkeiten:\
10+\
11+Sie erstellen folgenden Eintrag in der Registry:\
12+\[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Access\Security\]\
13+"label"=dword:00000001\
14+Alternativ kann die Sicherheitsstufe in Access auf niedrig gesetzt werden.\
15+Extras -\> Makro -\> Sicherheit -\> Sicherheitsstufe -\> Niedrig\
16+\
17+=Access Dateiverarbeitung=
18+
19+## Speicher reservieren
20+
21+``` pascal
22+var
23+ varAcApp: OleVariant; // reserviert den Speicher
24+```
25+
26+\
27+==Speicher belegen==
28+
29+``` pascal
30+begin
31+ ...
32+ // Speicher belegen ohne Fehlerbehandlung
33+ varAcApp := CreateOleObject('Access.Application'); // erstellt das Accessobjekt
34+
35+ // Speicher belegen mit Fehlerbehandlung:
36+ try
37+ varAcApp := CreateOleObject('Access.Application'); // erstellt das Accessobjekt
38+ except
39+ ShowMessage('MS Access kann nicht gestartet werden.'); // Fehlerbehandlung
40+ Exit;
41+ end;
42+ ...
43+end;
44+```
45+
46+\
47+==Access beenden und den Speicher freigeben==
48+
49+``` pascal
50+begin
51+ ...
52+ varAcApp.Quit; // bedendet Access
53+ varAcApp := UnAssigned; // gibt den Speicher frei
54+ ...
55+end;
56+```
57+
58+\
59+==Access Datenbank öffnen==
60+
61+``` pascal
62+begin
63+ ...
64+ // Öffnet die Datenbank, ohne die Datenbank zu referenzieren
65+ try
66+ varAcApp.OpenCurrentDatabase(UTF8ToUTF16('D:\Test.mdb')); // öffnet die Accessdatenbank (Pfad: maximal 255 Zeichen)
67+ except
68+ ShowMessage('Die Datenbank kann nicht geöffnet werden.');
69+ Exit;
70+ end;
71+ ...
72+end;
73+```
74+
75+\
76+==Access Datei schliessen==
77+
78+``` pascal
79+begin
80+ ...
81+ varAcApp.CloseCurrentDatabase;
82+ ...
83+end;
84+```
85+
86+\
87+==Tabelle öffnen==
88+
89+``` pascal
90+begin
91+ ...
92+ varAcApp.DoCmd.OpenTable('tblStammdaten');
93+ ...
94+end;
95+```
96+
97+\
98+==Tabelle schliessen==
99+
100+``` pascal
101+begin
102+ ...
103+ varAcApp.DoCmd.Close;
104+ ...
105+end;
106+```
107+
108+\
109+==Makro ausführen== Der Zugriff auf das Makro erlaubt demjenigen der VBA Kenntisse hat die Beschränkungen der OleAutoamtion zu umgehen und direkt in der Datenbank mit VBA zu programmieren und diese Makros über die Schnittstelle 'DoCmd.RunMacro' auszuführen.
110+
111+``` pascal
112+begin
113+ ...
114+ varAcApp.DoCmd.RunMacro('Makro1');
115+ ...
116+end;
117+```
118+
119+\
120+=Access sonstige Methoden=
121+
122+## Accessversion ermitteln
123+
124+``` pascal
125+begin
126+ ...
127+ ShowMessage(varAcApp.Version);
128+ ...
129+end;
130+```
131+
132+\
133+==Die Sichtbarkeit von Access steuern==
134+
135+``` pascal
136+begin
137+ ...
138+ varAcApp.Visible := False; // Access ist unsichtar
139+ varAcApp.Visible := True; // Access ist sichtbar
140+ ...
141+end;
142+```
143+
144+\
145+==Die Sanduhr anzeigen==
146+
147+``` pascal
148+begin
149+ ...
150+ varAcApp.DoCmd.Hourglass(True); // Schaltet die Sanduhr ein
151+ varAcApp.DoCmd.Hourglass(False); // Schaltet die Sanduhr aus
152+ ...
153+end;
154+```
155+
156+\
157+
158+## Die Warnmeldungen ausschalten
159+
160+Unterdrückt einige Warnmeldungen (Statusmeldungen), die für den Programmablauf nicht wichtig, aber bei der Programmierung störend sind.
161+
162+``` pascal
163+begin
164+ ...
165+ varAcApp.DoCmd.SetWarnings(False); // Schaltet die Warnmeldungen aus
166+ varAcApp.DoCmd.SetWarnings(True); // Schaltet die Warnmeldungen ein
167+ ...
168+end;
169+```
170+
171+\
172+\
173+--Olaf 17:26, 1 October 2012 (UTC)
174+
175+---
176+*From the Free Pascal wiki, page "AccessAutomation/de", as it stood on 2020-02-01 after a change by GAN, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
177+Category: Tutorials/de

Back to history