Registriert seit: 23. Aug 2003
172 Beiträge
|
Re: Tabellen springen zum letzten Datensatz, warum?
23. Jun 2004, 17:03
Nagut, dann geben ich euch mal einen kleinen Einblick in meien quelltext:
Delphi-Quellcode:
procedure TMietverwaltung.FormCreate(Sender: TObject);
var
pfad,tabellen, name, ext: string;
a:integer;
begin
pfad := ExtractFilePath(Application.ExeName);
name := ExtractFileName(Application.ExeName);
ext := ExtractFileExt(Application.ExeName);
tabellen:=pfad + 'tabellen';
with Table1 do DatabaseName := tabellen;
with Table2 do DatabaseName := tabellen;
IF NOT FileExists(tabellen + '\daten.DB') THEN
BEGIn
if not ForceDirectories(tabellen) then
ShowMessage('Beim Anlegen von '+Tabellen+' ist ein Fehler aufgetreten! Bitte überprüfen Sie ob Schreibzugriff auf den Datenträger der Mietprogramm.exe haben..');
with Table1 do
begin
active := false;
DatabaseName := tabellen;
tabletype := TTParadox;
tablename := 'daten';
Name := 'Table1';
with FieldDefs do
begin
clear;
Add('Whg', ftinteger, 0, false);
Add('Name', ftString, 50, false);
Add('Vorname', ftstring, 50, false);
Add('Mietbegin', ftDate, 0, false);
Add('Bemerkung', ftString, 100, false);
Add('telefon', ftinteger, 0, false);
Add('Bruttomiete', ftcurrency, 0, false);
Add('Nettomiete', ftcurrency, 0, false);
Add('Nebenkosten', ftcurrency, 0, false);
Add('Kaltwasser', ftcurrency, 0, false);
Add('Warmwasser', ftcurrency, 0, false);
Add('Müll', ftcurrency, 0, false);
Add('Fernwärme', ftcurrency, 0, false);
Add('Antenne', ftcurrency, 0, false);
Add('HMService', ftcurrency, 0, false);
end;
WITH indexdefs DO BEGIN
clear;
Add('Whg', 'Whg', [ixprimary, ixunique]);
END;
CreateTable;
table1.Open;
vordefinieren;
end;
IF NOt FileExists(tabellen + '\kosten.DB') THEN
BEGIN
with Table2 do
begin
active := false;
DatabaseName := tabellen;
tabletype := TTParadox;
tablename := 'kosten';
Name := 'Table2';
with FieldDefs do
begin
clear;
Add('id', ftinteger, 0, false);
Add('Datum', ftDate, 0, false);;
Add('Bruttomiete', ftcurrency, 0, false);
Add('Bezahlt', ftcurrency, 0, false);
Add('Offen', ftcurrency, 0, false);
end;
CreateTable;
end;
end;
setbuttons(1);
table1.Open;
table2.Open;
vordefinieren;
end
else begin
setbuttons(1);
table1.Open;
table2.Open;
end;
brutto_summe;
a:=table1.RecordCount;
dbtext2.caption:=inttostr(a);
table2.Filtered:=false;
table2.Filter := ('id =' + inttostr(table1whg.Value));
table2.Filtered:=true;
if ((e_whg.Text='') and (e_name.Text='')) then
begin
dbgrid1.Enabled:=false;
table1.Edit;
table1.Delete;
end
else dbgrid1.Enabled:=true;
summe;
end;
Master/detail verbindung habe ich nicht, nur 2 tabellen, die (per filter) zusammen einen mieter ergeben.
Active setzte ich diese garnicht,
das eonzige was ich mache ist table.open;
Ich wüsste auch garnicht warum ich diese active setzen sollte, ich sehe da keien unterschied.
Die Keine der Tabelle ist indiziert.
Ich wäre euch dankbar wenn ihr mir noch heute helfen könntet, da ich das programm morgen abgeben muss.
Plautzer
|