Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Wie muß die TDatabase Komponente eingerichtet werden, um auf ein ACCESS-Datenbankfile zugreifen zu können? Und welche Parameter sind für die Übergabe wichtig?
Gruß
Ralf
procedure TFormMain.SBtnOpenClick(Sender: TObject);
begin
with OpenDialogMDB do
if Execute then
begin
EditMDB.Text := FileName;
OpenMDB(FileName);
end;
end;
procedure TFormMain.ComboBoxTableClick(Sender: TObject);
var
sTableName : String;
begin
with ComboBoxTable do
sTableName := Items[ItemIndex];
if Length(sTableName) = 0 then
raise Exception.Create('Kein Tabellenname definiert');
OpenTable(sTableName);
end;
procedure TFormMain.OpenMDB(sMDBName : String);
var
aTableList : TStringList;
begin
Screen.Cursor := crSQLWait;
try
TableACCESS.Active := False;
DatabaseACCESS.Connected := False;
ComboBoxTable.Items.Clear;
ComboBoxTable.Enabled := False;
StatBar.Panels[0].Text := '';
StatBar.Panels[1].Text := 'MDB-Datei wird geöffnet....';
DBGridACCESS.Visible := False;
Application.ProcessMessages;
with DatabaseACCESS.Params do
begin
Clear;
Add('DATABASE NAME=' + sMDBName);
Add('OPEN MODE=READ/WRITE');
Add('LANGDRIVER=BLLT1DE0');
Add('USER NAME=');
Add('PASSWORD=');
end;
DatabaseACCESS.Connected := True;
StatBar.Panels[1].Text := 'Tabellen aus MDB-Datei auslesen...';
Application.ProcessMessages;
// Tabellen aus der ACCESS-Datenbank auslesen + Combobox füllen
aTableList := TStringList.Create;
try
Session.GetTableNames(DatabaseACCESS.DatabaseName, '',False, False, aTableList);
ComboBoxTable.Items := aTableList;
finally
aTableList.Free;
end;
ComboBoxTable.Enabled := True;
StatBar.Panels[1].Text := 'Eine Tabelle kann nun ausgewählt werden.';
DBGridACCESS.Visible := True;
finally
Screen.Cursor := crDefault;
end;
end;
procedure TFormMain.OpenTable(sTableName: String);
begin
DBGridACCESS.Visible := False;
Screen.Cursor := crSQLWait;
try
StatBar.Panels[1].Text := 'Ausgewählte Tabelle wird geöffnet...';
Application.ProcessMessages;
with TableACCESS do
begin
Active := False;
TableName := sTableName;
Active := True;
StatBar.Panels[0].Text := Format('%d Datensätze', [RecordCount]);
end;
StatBar.Panels[1].Text := '';
DBGridACCESS.Visible := True;
finally
Screen.Cursor := crDefault;
end;
end;
end.
</pre>
Im Konfigurationsdialog für TDatabase wird nur der Eintrag <b>MSACCESS</b> für die Eigenschaft <b>DriverName</b> zusätzlich ausgewählt. Alles andere macht das Programm zu Laufzeit über die Params-Eigenschaft von TDatabase
Hallo Herr Kosch,<p>
ich muß mit einem Delphi-Programm für Kundenauswertungen auf eine <b> passwortgeschützte MS-ACCESS-Datenbank </b> lesend zugreifen, bei dem mir natürlich weder der Benutzername noch das Paßwort bekannt ist. <br>Gibt es ein Trick oder ein Tool um dieses Problem zu lösen ?
Falls die Antwort zu heikel ist, vielleicht per eMail an:<br> [email protected]
ja - denn TDatabase bietet im Objektinspektor die Eigenschaft <b>LoginPrompt</b> an, so dass man sich den Standard-Login-Dialog anzeigen und dann ggf. die Parameter vor dem Aktivieren der Verbindung anpassen kann
Comment