Einzelnen Beitrag anzeigen

Saulo

Registriert seit: 6. Jun 2003
58 Beiträge
 
Delphi 7 Enterprise
 
#62

Re: Allgemeine Fragen zu Access + Delphi

  Alt 10. Sep 2003, 19:14
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!
  Mit Zitat antworten Zitat