Difference between revisions of "AccessAutomation/de"
m (Fixed syntax highlighting) |
|||
(5 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{AccessAutomation}} | {{AccessAutomation}} | ||
+ | <br> | ||
+ | Zurück zur [[Office Automation/de|Office Automation]].<br> | ||
+ | <br> | ||
+ | __TOC__ | ||
+ | <br> | ||
=Access= | =Access= | ||
− | Bei der OleAutomatisierung von Acces gibt es ein | + | Bei der OleAutomatisierung von Acces gibt es ein grosse Probleme. Es werden nicht alle Methoden von der OleAutomatisierung unterstützt.<br> |
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.<br> | 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.<br> | ||
+ | <br> | ||
+ | ==Sicherheitsabfrage== | ||
+ | Die Sicherheitsabfrage, die (ab Access 2003) bei jedem start von Access erscheint stört die meisten bei der Automatisierung von Access.<br> | ||
+ | Um sie Sicherheitsabfrage (Beispiel: Access 2003) zu umgehen gibt es zwei Möglichkeiten:<br> | ||
+ | <br> | ||
+ | Sie erstellen folgenden Eintrag in der Registry:<br> | ||
+ | [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Access\Security]<br> | ||
+ | "label"=dword:00000001<br> | ||
+ | Alternativ kann die Sicherheitsstufe in Access auf niedrig gesetzt werden.<br> | ||
+ | Extras -> Makro -> Sicherheit -> Sicherheitsstufe -> Niedrig<br> | ||
<br> | <br> | ||
=Access Dateiverarbeitung= | =Access Dateiverarbeitung= | ||
==Speicher reservieren== | ==Speicher reservieren== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
var | var | ||
varAcApp: OleVariant; // reserviert den Speicher | varAcApp: OleVariant; // reserviert den Speicher | ||
Line 12: | Line 27: | ||
<br> | <br> | ||
==Speicher belegen== | ==Speicher belegen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 30: | Line 45: | ||
<br> | <br> | ||
==Access beenden und den Speicher freigeben== | ==Access beenden und den Speicher freigeben== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 40: | Line 55: | ||
<br> | <br> | ||
==Access Datenbank öffnen== | ==Access Datenbank öffnen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 55: | Line 70: | ||
<br> | <br> | ||
==Access Datei schliessen== | ==Access Datei schliessen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 64: | Line 79: | ||
<br> | <br> | ||
==Tabelle öffnen== | ==Tabelle öffnen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 73: | Line 88: | ||
<br> | <br> | ||
==Tabelle schliessen== | ==Tabelle schliessen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 84: | Line 99: | ||
Der Zugriff auf das Makro erlaubt demjenigen der VBA Kenntisse hat die Beschränkungen der OleAutoamtion zu umgehen und | 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. | direkt in der Datenbank mit VBA zu programmieren und diese Makros über die Schnittstelle 'DoCmd.RunMacro' auszuführen. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 95: | Line 110: | ||
==Accessversion ermitteln== | ==Accessversion ermitteln== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 104: | Line 119: | ||
<br> | <br> | ||
==Die Sichtbarkeit von Access steuern== | ==Die Sichtbarkeit von Access steuern== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 114: | Line 129: | ||
<br> | <br> | ||
==Die Sanduhr anzeigen== | ==Die Sanduhr anzeigen== | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
begin | begin | ||
... | ... | ||
Line 125: | Line 140: | ||
==Die Warnmeldungen ausschalten== | ==Die Warnmeldungen ausschalten== | ||
− | <syntaxhighlight> | + | Unterdrückt einige Warnmeldungen (Statusmeldungen), die für den Programmablauf nicht wichtig, aber bei der Programmierung störend sind. |
+ | <syntaxhighlight lang=pascal> | ||
begin | begin | ||
... | ... | ||
− | |||
varAcApp.DoCmd.SetWarnings(False); // Schaltet die Warnmeldungen aus | varAcApp.DoCmd.SetWarnings(False); // Schaltet die Warnmeldungen aus | ||
varAcApp.DoCmd.SetWarnings(True); // Schaltet die Warnmeldungen ein | varAcApp.DoCmd.SetWarnings(True); // Schaltet die Warnmeldungen ein | ||
Line 136: | Line 151: | ||
<br> | <br> | ||
<br> | <br> | ||
− | + | --[[User:Olaf|Olaf]] 17:26, 1 October 2012 (UTC) | |
[[Category:Tutorials/de]] | [[Category:Tutorials/de]] |
Latest revision as of 01:01, 2 February 2020
│
Deutsch (de) │
Zurück zur Office Automation.
Access
Bei der OleAutomatisierung von Acces gibt es ein grosse Probleme. Es werden nicht alle Methoden von der OleAutomatisierung unterstützt.
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.
Sicherheitsabfrage
Die Sicherheitsabfrage, die (ab Access 2003) bei jedem start von Access erscheint stört die meisten bei der Automatisierung von Access.
Um sie Sicherheitsabfrage (Beispiel: Access 2003) zu umgehen gibt es zwei Möglichkeiten:
Sie erstellen folgenden Eintrag in der Registry:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Access\Security]
"label"=dword:00000001
Alternativ kann die Sicherheitsstufe in Access auf niedrig gesetzt werden.
Extras -> Makro -> Sicherheit -> Sicherheitsstufe -> Niedrig
Access Dateiverarbeitung
Speicher reservieren
var
varAcApp: OleVariant; // reserviert den Speicher
Speicher belegen
begin
...
// Speicher belegen ohne Fehlerbehandlung
varAcApp := CreateOleObject('Access.Application'); // erstellt das Accessobjekt
// Speicher belegen mit Fehlerbehandlung:
try
varAcApp := CreateOleObject('Access.Application'); // erstellt das Accessobjekt
except
ShowMessage('MS Access kann nicht gestartet werden.'); // Fehlerbehandlung
Exit;
end;
...
end;
Access beenden und den Speicher freigeben
begin
...
varAcApp.Quit; // bedendet Access
varAcApp := UnAssigned; // gibt den Speicher frei
...
end;
Access Datenbank öffnen
begin
...
// Öffnet die Datenbank, ohne die Datenbank zu referenzieren
try
varAcApp.OpenCurrentDatabase(UTF8ToUTF16('D:\Test.mdb')); // öffnet die Accessdatenbank (Pfad: maximal 255 Zeichen)
except
ShowMessage('Die Datenbank kann nicht geöffnet werden.');
Exit;
end;
...
end;
Access Datei schliessen
begin
...
varAcApp.CloseCurrentDatabase;
...
end;
Tabelle öffnen
begin
...
varAcApp.DoCmd.OpenTable('tblStammdaten');
...
end;
Tabelle schliessen
begin
...
varAcApp.DoCmd.Close;
...
end;
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.
begin
...
varAcApp.DoCmd.RunMacro('Makro1');
...
end;
Access sonstige Methoden
Accessversion ermitteln
begin
...
ShowMessage(varAcApp.Version);
...
end;
Die Sichtbarkeit von Access steuern
begin
...
varAcApp.Visible := False; // Access ist unsichtar
varAcApp.Visible := True; // Access ist sichtbar
...
end;
Die Sanduhr anzeigen
begin
...
varAcApp.DoCmd.Hourglass(True); // Schaltet die Sanduhr ein
varAcApp.DoCmd.Hourglass(False); // Schaltet die Sanduhr aus
...
end;
Die Warnmeldungen ausschalten
Unterdrückt einige Warnmeldungen (Statusmeldungen), die für den Programmablauf nicht wichtig, aber bei der Programmierung störend sind.
begin
...
varAcApp.DoCmd.SetWarnings(False); // Schaltet die Warnmeldungen aus
varAcApp.DoCmd.SetWarnings(True); // Schaltet die Warnmeldungen ein
...
end;
--Olaf 17:26, 1 October 2012 (UTC)