Ok, hier wäre auch schon die nächste frage...
oder genauer genommen 2.
aber der reihe nach:
ich möchte jetzt eine suchfunktion für die titel im administartorbereich des programms einrichten. dabei soll man erstens datensätze nach kriterien aussondern und zweitens mittels GotoKey nur mit den datensätzen, die ausgesondert wurden, arbeiten können. Soweit so gut, das erste klappt auch ganz gut:
Delphi-Quellcode:
procedure TForm5.Button3Click(Sender: TObject);
begin
if form5.ComboBox2.ItemIndex = 0 then
begin
form5.DataSource2.DataSet := DataModule2.TTitelaufnahme;
end
else
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE ';
case form5.ComboBox2.ItemIndex of
1: AdoQuery1.SQL.Add('Autor LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
2: AdoQuery1.SQL.Add('Titel LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
3: AdoQuery1.SQL.Add('Reihe LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
4: AdoQuery1.SQL.Add('Band LIKE ' +form5.edit3.text);
5: AdoQuery1.SQL.Add('Sachgruppe LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
6: AdoQuery1.SQL.Add('Originaltitel LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
7: AdoQuery1.SQL.Add('Ausgabe LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
8: AdoQuery1.SQL.Add('Medium LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
9: AdoQuery1.SQL.Add('Verlag LIKE ' +QuotedStr('%'+form5.edit3.text+'%'));
10: AdoQuery1.SQL.Add('Erscheinungsjahr LIKE ' +form5.edit3.text);
11: AdoQuery1.SQL.Add('Preis LIKE ' +form5.edit3.text);
12: AdoQuery1.SQL.Add('Ausleiher LIKE ' +QuotedStr(form5.edit3.text));
13: AdoQuery1.SQL.Add('wieoft LIKE ' +form5.edit3.text);
14: AdoQuery1.SQL.Add('ISBN LIKE ' +form5.edit3.text);
15: AdoQuery1.SQL.Add('ausgeliehen = true');
16: AdoQuery1.SQL.Add('Ausleihdatum = ' +StrToDate(form5.Edit3.Text); //hier meckert der Compiler von wegen 'inkombatible Typen...
end;
AdoQuery1.Open;
form5.DataSource2.DataSet := AdoQuery1;
end;
end;
jetzt wurden die datensätze nach den kriterien ausgesondert, aber jetzt das probloem: das mit GotoKey funzt nicht... der quelltext:
Delphi-Quellcode:
procedure TForm5.Button4Click(Sender: TObject);
var s : string;
begin
if form5.DataSource2.DataSet = AdoQuery1 then
begin
with AdoQuery1 do
begin
EditKey;
case form5.ComboBox2.ItemIndex of
0: FieldByName('ID').AsInteger := StrToInt(form5.Edit2.Text);
1: FieldByName('Autor').AsString := form5.Edit2.Text;
2: FieldByName('Titel').AsString := form5.Edit2.Text;
3: FieldByName('Ausgabe').AsString := form5.Edit2.Text;
4: FieldByName('Band').AsInteger := StrToInt(form5.Edit2.Text);
5: FieldByName('Reihe').AsString := form5.Edit2.Text;
6: FieldByName('Sachgruppe').AsString := form5.Edit2.Text;
7: FieldByName('Originaltitel').AsString := form5.Edit2.Text;
8: FieldByName('Medium').AsString := form5.Edit2.Text;
9: FieldByName('Verlag').AsString := form5.Edit2.Text;
10: FieldByName('Erscheinungsjahr').AsInteger := StrToInt(form5.Edit2.Text);
11: FieldByName('Preis').AsCurrency := StrToFloat(form5.Edit2.Text);
12: FieldByName('Ausleiher').AsString := form5.Edit2.Text;
13: FieldByName('wieoft').AsInteger := StrToInt(form5.Edit2.Text);
14: FieldByName('ISBN').AsInteger := StrToInt(form5.Edit2.Text);
15: FieldByName('ausgeliehen').AsBoolean := true;
16: FieldByName('Ausleihdatum').AsDateTime := StrToDate(form5.Edit2.Text);
end;
GotoKey;
end;
end;
end;
Undecalerd Identifier: 'EditKey'
Undecalerd Identifier: 'GotoKey'
meint der compiler nur dazu... aber ich habe es genauso gemacht wie es auch in der hilfe stand:
Delphi-Quellcode:
with StateData do
begin
EditKey;
FieldByName('State').AsString := 'CA';
FieldByName('City').AsString := 'Santa Barbara';
GotoKey;
end;
oder geht das garnicht mit GotoKey?
Naja und jetzt die 2. Frage:
Nachdem ein user sich angemeldet hat, kommt er sofort zum hauptforumlar, wo seine daten auch sofort angezeigt werden. jedoch werden sie das erst nach dem ausloggen und einem erneuten einloggen. wie kriege ich die tabelle dazu, sich da schon zu aktualisieren? ich habe schon versucht sie nach der anmeldung zu schließen (active := false) und direkt wieder zu öffnen (active := true) und dann erst das formular anzuzeigen... das gleiche ergebnis...
alle wollen mein bestes.... aber sie kriegen es nicht!