Difference between revisions of "AccessAutomation/de"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{AccessAutomation}} =Access= Bei der OleAutomatisierung von Acces gibt es ein grosses Problem. Es werden nicht alle Methoden von der OleAutomatisierung unterstützt.<br> Das ...")
 
Line 117: Line 117:
 
begin
 
begin
 
   ...
 
   ...
   varAcApp.DoCmd.Hourglass(True);  // Schaltet die Warnmeldungen ein
+
   varAcApp.DoCmd.Hourglass(True);  // Schaltet die Sanduhr ein
   varAcApp.DoCmd.Hourglass(False);  // Schaltet die Warnmeldungen aus
+
   varAcApp.DoCmd.Hourglass(False);  // Schaltet die Sanduhr aus
 
   ...
 
   ...
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
 +
 
==Die Warnmeldungen ausschalten==
 
==Die Warnmeldungen ausschalten==
 
<syntaxhighlight>
 
<syntaxhighlight>

Revision as of 19:22, 1 October 2012

Deutsch (de)

Access

Bei der OleAutomatisierung von Acces gibt es ein grosses Problem. 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.

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

begin
  ...
Unterdrückt einige Warnmeldungen (Statusmeldungen), die für den Programmablauf nicht wichtig, aber bei der Programmierung störend sind.
  varAcApp.DoCmd.SetWarnings(False);  // Schaltet die Warnmeldungen aus
  varAcApp.DoCmd.SetWarnings(True);   // Schaltet die Warnmeldungen ein
  ...
end;