Sign in Join
Wiki copytemporary

AccessAutomation/de: what changed

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

OldNewLine
1-\
21Zurück zur [[Office Automation/de|Office Automation]].\
3-\
4-\
2+
53=Access= Bei der OleAutomatisierung von Acces gibt es ein grosse Probleme. Es werden nicht alle Methoden von der OleAutomatisierung unterstützt.\
64Das 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-\
5+
86==Sicherheitsabfrage== Die Sicherheitsabfrage, die (ab Access 2003) bei jedem start von Access erscheint stört die meisten bei der Automatisierung von Access.\
97Um sie Sicherheitsabfrage (Beispiel: Access 2003) zu umgehen gibt es zwei Möglichkeiten:\
10-\
8+
119Sie erstellen folgenden Eintrag in der Registry:\
1210\[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Access\Security\]\
1311"label"=dword:00000001\
1412Alternativ kann die Sicherheitsstufe in Access auf niedrig gesetzt werden.\
1513Extras -\> Makro -\> Sicherheit -\> Sicherheitsstufe -\> Niedrig\
16-\
14+
1715=Access Dateiverarbeitung=
1816
1917## Speicher reservieren
2018
2119``` pascal
2220var
2321 varAcApp: OleVariant; // reserviert den Speicher
2422```
2523
26-\
2724==Speicher belegen==
2825
2926``` pascal
3027begin
3128 ...
3229 // Speicher belegen ohne Fehlerbehandlung
3330 varAcApp := CreateOleObject('Access.Application'); // erstellt das Accessobjekt
3431
3532 // Speicher belegen mit Fehlerbehandlung:
3633 try
3734 varAcApp := CreateOleObject('Access.Application'); // erstellt das Accessobjekt
3835 except
3936 ShowMessage('MS Access kann nicht gestartet werden.'); // Fehlerbehandlung
4037 Exit;
4138 end;
4239 ...
4340end;
4441```
4542
46-\
4743==Access beenden und den Speicher freigeben==
4844
4945``` pascal
5046begin
5147 ...
5248 varAcApp.Quit; // bedendet Access
5349 varAcApp := UnAssigned; // gibt den Speicher frei
5450 ...
5551end;
5652```
5753
58-\
5954==Access Datenbank öffnen==
6055
6156``` pascal
6257begin
6358 ...
6459 // Öffnet die Datenbank, ohne die Datenbank zu referenzieren
6560 try
6661 varAcApp.OpenCurrentDatabase(UTF8ToUTF16('D:\Test.mdb')); // öffnet die Accessdatenbank (Pfad: maximal 255 Zeichen)
6762 except
6863 ShowMessage('Die Datenbank kann nicht geöffnet werden.');
6964 Exit;
7065 end;
7166 ...
7267end;
7368```
7469
75-\
7670==Access Datei schliessen==
7771
7872``` pascal
7973begin
8074 ...
8175 varAcApp.CloseCurrentDatabase;
8276 ...
8377end;
8478```
8579
86-\
8780==Tabelle öffnen==
8881
8982``` pascal
9083begin
9184 ...
9285 varAcApp.DoCmd.OpenTable('tblStammdaten');
9386 ...
9487end;
9588```
9689
97-\
9890==Tabelle schliessen==
9991
10092``` pascal
10193begin
10294 ...
10395 varAcApp.DoCmd.Close;
10496 ...
10597end;
10698```
10799
108-\
109100==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.
110101
111102``` pascal
112103begin
113104 ...
114105 varAcApp.DoCmd.RunMacro('Makro1');
115106 ...
116107end;
117108```
118109
119-\
120110=Access sonstige Methoden=
121111
122112## Accessversion ermitteln
123113
124114``` pascal
125115begin
126116 ...
127117 ShowMessage(varAcApp.Version);
128118 ...
129119end;
130120```
131121
132-\
133122==Die Sichtbarkeit von Access steuern==
134123
135124``` pascal
136125begin
137126 ...
138127 varAcApp.Visible := False; // Access ist unsichtar
139128 varAcApp.Visible := True; // Access ist sichtbar
140129 ...
141130end;
142131```
143132
144-\
145133==Die Sanduhr anzeigen==
146134
147135``` pascal
148136begin
149137 ...
150138 varAcApp.DoCmd.Hourglass(True); // Schaltet die Sanduhr ein
151139 varAcApp.DoCmd.Hourglass(False); // Schaltet die Sanduhr aus
152140 ...
153141end;
154142```
155143
156-\
157-
158144## Die Warnmeldungen ausschalten
159145
160146Unterdrückt einige Warnmeldungen (Statusmeldungen), die für den Programmablauf nicht wichtig, aber bei der Programmierung störend sind.
161147
162148``` pascal
163149begin
164150 ...
165151 varAcApp.DoCmd.SetWarnings(False); // Schaltet die Warnmeldungen aus
166152 varAcApp.DoCmd.SetWarnings(True); // Schaltet die Warnmeldungen ein
167153 ...
168154end;
169155```
170156
171-\
172-\
173157--Olaf 17:26, 1 October 2012 (UTC)
174158
175159---
176160*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).*
177161Category: Tutorials/de

Back to history