Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Allgemeine Fragen zu Access + Delphi (https://www.delphipraxis.net/6539-allgemeine-fragen-zu-access-delphi.html)

Sharky 28. Jul 2003 08:37

Re: Allgemeine Fragen zu Access + Delphi
 
Zitat:

Zitat von Saulo
... weiß da jemand einen lösungsvorschlag?

Ups... mein Fehler! ABER: Den musst Du selber lösen können.

Tip:

Wer hindert dich daran das alles was in Hochkommas stehen soll in QuotedString zu setzten; nicht nur den Namen aus deinem TEdit!?

Saulo 28. Jul 2003 12:50

Re: Allgemeine Fragen zu Access + Delphi
 
hm... sorry aber ich komm echt nicht drauf...? :oops:
also die zeile heißt jetzt:

Delphi-Quellcode:
AdoQuery1.SQL.Add('SELECT * FROM TUser WHERE (Vorname LIKE ' +QuotedStr(Form2.edit1.text)+ ')');
und ins editfeld schreib ich dann: '%suchbegriff%' (was natürlich nicht so bleiben kann), aber dann krieg ich gar kein suchergebnis... ist echt zum verzweifeln.... :?

und dann noch was: ich will eine zahl in der tabelle inkremieren (heißt das so? jedenfalls meine ich erhöhen :wink: )
also ich öffne dann die query und will den wert in eine variable schreiben:

Delphi-Quellcode:
i := DataModule2.qryUser.FieldByName('wieofteingeloggt').AsInteger;
nur dann meckert er, von wegen dass es das feld in der tabelle garnicht gibt... aber das gibts sehr wohl! woran liegts?

Sharky 28. Jul 2003 13:22

Re: Allgemeine Fragen zu Access + Delphi
 
Schaue dir mal diesen Code an. Schaue dir mal genau an was in QuotedStr steh.

Delphi-Quellcode:
 DataModule2.qryUser.Close;
  DataModule2.qryUser.SQL.Clear;
  DataModule2.qryUser.SQL.Add('SELECT * FROM TUser WHERE (name LIKE'    
+ QuotedStr ('%' +  form1.edit1.text + '%')
   + ')');
  DataModule2.qryUser.Open;

Zitat:

Zitat von Saulo
Delphi-Quellcode:
i := DataModule2.qryUser.FieldByName('wieofteingeloggt').AsInteger;
nur dann meckert er, von wegen dass es das feld in der tabelle garnicht gibt... aber das gibts sehr wohl! woran liegts?

Hast Du das Feld "wieofteingeloggt" auch in deine SELECT anweisung geschrieben?

Ein SELECT gibt dir nur die Felder wieder die Du anforderst. z.B.:

SQL-Code:
SELECT name FROM TUser //gibt nur das Feld name zurück
SELECT name,vorname FROM TUser //gibt name und vorname zurück
SELECT name,vorname, wieofteingeloggt //gibt halt diese drei Felder zurück
SELECT * FROM TUser //gibt alle Felder zurück

So, jetz musst Du aber mal selber etwas Programmieren :-)

Saulo 28. Jul 2003 13:46

Re: Allgemeine Fragen zu Access + Delphi
 
Zitat:

Zitat von Sharky
So, jetz musst Du aber mal selber etwas Programmieren :-)

Das versuche ich ja grade verzweifelt.... aber irgednwie wills echt nicht so recht klappen....


Zitat:

Zitat von Sharky
Delphi-Quellcode:
  ...
  DataModule2.qryUser.SQL.Add('SELECT * FROM TUser WHERE (name LIKE'    
+ QuotedStr ('%' +  form1.edit1.text + '%')
   + ')');

ja, so weit war ich auch gekommen, aber est geht mir ja darum, dass der begriff n hochkommas stehen muss. die obige zeile liefert ja nur:
%suchbegriff% aber das ganze muss ja noch in hochkommas stehen, also: '%suchbegriff%'
mit der obigen zeile kann er absolut nix anfangen, liefert also auch keine suchergebnisse...

Zitat:

Zitat von Sharky
Hast Du das Feld "wieofteingeloggt" auch in deine SELECT anweisung geschrieben?

Ja habe ich! ich hab aber mal irgendwo gelesen dass ADO-Connetions sehr empfindlich auf veränderungen reagieren...? könnte es vielleicht daran liegen dass ich dieses feld erst nach der verbindung in die tabelle eingefügt habe...?

Sharky 28. Jul 2003 14:28

Re: Allgemeine Fragen zu Access + Delphi
 
Zitat:

Zitat von Saulo
....die obige zeile liefert ja nur:
%suchbegriff% aber das ganze muss ja noch in hochkommas stehen, also: '%suchbegriff%'
....

Also, bei mir liefert ein:

Delphi-Quellcode:
 QuotedStr ('%' +  form1.edit1.text + '%')
'%suchbegriff%'

Alternativ kannst Du den SQL-String ja einmal so aufbauen:
Delphi-Quellcode:
DataModule2.qryUser.SQL.Clear;
DataModule2.qryUser.SQL.Text := 'SELECT * FROM TUser WHERE (name LIKE'
   + QuotedStr ('%' +  form1.edit1.text + '%')
   + ')';
Ist evenutell etwas übersichtlicher?
Zitat:

Zitat von Saulo
Ja habe ich! ich hab aber mal irgendwo gelesen dass ADO-Connetions sehr empfindlich auf veränderungen reagieren...? könnte es vielleicht daran liegen dass ich dieses feld erst nach der verbindung in die tabelle eingefügt habe...?

Hast Du womöglich die Felder in dein Query aufgenommer (mit der Rechten Maustaste drauf - FeldEditor - Hinzufügen?
Wenn ja... dann ist das der Fehler. Versuche das so weit wie möglich zu vermeiden. Das ist nämlich wie ein zusätzlicher "Filter" deiner Felder. Wenn dort ein oder mehr Felder drinnen stehen kannst Du selbst mit einem SELECT * FROM tabelle nur auf die Felder zugreifen die Du dort angegeben hast.

Ich trage dort nie etwas ein.

Saulo 28. Jul 2003 15:13

Re: Allgemeine Fragen zu Access + Delphi
 
puuh... danke! also jetzt hab ichs wenigstens mit der suchfunktion :D
das nächste problem: warum wird nur die ID des autors angezeigt, obwohl ich seinen namen auslese? also die prozedur ist so:

Delphi-Quellcode:
rocedure TForm2.Button2Click(Sender: TObject);
var l,n : integer;
    ausgeliehen : boolean;
begin
  AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE (Autor LIKE'
   + QuotedStr ('%' +  form2.edit1.text + '%')
   + ')';
  AdoQuery1.Open;

  l := ADOQuery1.RecordCount;
  form2.label8.Caption := 'Ihre Suchanfrage ergab '+inttostr(l)+' Treffer!';

  form2.Label4.Caption := AdoQuery1.FieldByName('autor').AsString;

  form2.Label5.Caption := AdoQuery1.FieldByName('titel').AsString;

  n := AdoQuery1.FieldByName('id').AsInteger;
  form2.Label4.Caption := inttostr(n);

  ausgeliehen := AdoQuery1.FieldByName('ausgeliehen').AsBoolean;

  if ausgeliehen then
    begin
      form2.label19.Caption := 'ausgeliehen';
      form2.Label19.Font.Color := clRed;
    end
  else
    begin
      form2.Label19.Caption := 'verfügbar';
      form2.Label19.Font.Color := clLime;
    end;
end;
jetzt wird aber in dem Label 'Autor' nur die ID angezeigt und da wo die ID stehen sollte steht garnix.... der titel und der status werden korrekt angezeigt... also das kann ich mir wirklich beim besten willen nicht erklären!!

Saulo 28. Jul 2003 15:16

Re: Allgemeine Fragen zu Access + Delphi
 
oh gott ich bin so hohl.... LOL ich habe die Labels falsch zugewiesen... LOL schande über mein haupt *schaaaaaaaaam* :mrgreen:

Saulo 28. Jul 2003 17:08

Re: Allgemeine Fragen zu Access + Delphi
 
ja gut, also nächste frage.... wie greift man auf den index einer combobox zu? also mit einer ComboBox soll die suchgenauigkeit bestimmt werden, die items sind in dieser reihenfolge reingeschrieben:

genau
ähnlich
nur Anfang
nur Endung

der Quelltext dazu sieht so aus:

Delphi-Quellcode:
if form2.ComboBox2.ItemIndex = 2
  then
    begin
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE (Autor LIKE'
      + QuotedStr ('%' +  form2.edit1.text + '%')
      + ')';
      AdoQuery1.Open;
    end;

  if form2.ComboBox2.ItemIndex = 1
  then
    begin
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE (Autor LIKE'
      + QuotedStr (form2.edit1.text)
      + ')';
      AdoQuery1.Open;
    end;

  if form2.ComboBox2.ItemIndex = 3
  then
    begin
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE (Autor LIKE'
      + QuotedStr (form2.edit1.text + '%')
      + ')';
      AdoQuery1.Open;
    end;

  if form2.ComboBox2.ItemIndex = 4
  then
    begin
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE (Autor LIKE'
      + QuotedStr ('%' +  form2.edit1.text)
      + ')';
      AdoQuery1.Open;
    end;
nur irgendwie findet er nur bei 'nur Anfang' (also wie ich denke index 3) was. des weiteren soll durch eine weitere ComboBox bestimmt werden ob nach Autor oder Titel gesucht werden soll. Wie kriege ich nun den zum Index gehörigen String, so dass ich es in die Abfrage einbauen kann?

Saulo 28. Jul 2003 18:06

Re: Allgemeine Fragen zu Access + Delphi
 
und dann immer noch das alte problem mit den feldern die nicht erkannt werden :cry:
keine ahnung was ich noch machen soll, also mit der query habe ich nichts gemacht, nichts hinzugefügt... jetzt habe ich delphi geschlossen und ein ersatzfeld gemacht in access, delphi wieder gestartet... genau das gleiche.... woran kanns denn noch liegen???

Sharky 29. Jul 2003 08:20

Re: Allgemeine Fragen zu Access + Delphi
 
Zitat:

Zitat von Saulo
ja gut, also nächste frage.... wie greift man auf den index einer combobox zu? also mit einer ComboBox soll die suchgenauigkeit bestimmt werden, die items sind in dieser reihenfolge reingeschrieben:
....

Hai,

ersteinmal: ComboBox.ItemIndex beginnt bei 0.

Aus deinen vielen Codezeilen habe ich mal diesen Code gemacht:

Delphi-Quellcode:
begin
 AdoQuery1.Close;
 AdoQuery1.SQL.Clear;
 AdoQuery1.SQL.Text := 'SELECT * FROM TTitelaufnahme WHERE (Autor LIKE';
 Case form2.ComboBox2.ItemIndex of
  begin
   0 : AdoQuery1.SQL.Add (QuotedStr (form2.edit1.text));
   1 : AdoQuery1.SQL.Add (QuotedStr ('%' +  form2.edit1.text + '%'))
   2 : AdoQuery1.SQL.Add (QuotedStr (form2.edit1.text + '%'))
   3 : AdoQuery1.SQL.Add (QuotedStr ('%' +  form2.edit1.text))
  end;
 AdoQuery1.SQL.Add (')');
 AdoQuery1.Open;
end;
Das ist genau das gleiche wie bei dir. Nur kürzer und darum weniger Fehler trächtig :lol:

Warum das mit den zusätzlichen Feldern bei dir nicht geht kann ich dir aber beim besten Willen nicht sagen :|

Saulo 29. Jul 2003 13:07

Re: Allgemeine Fragen zu Access + Delphi
 
ok, danke :)

also das mit den feldern hab ich jetzt irgednwie hingekriegt, der quelltext:

Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var i : string;
begin
  i := form2.Label10.caption;
  DataModule2.qryTitelaufnahme.Close;
  DataModule2.qryTitelaufnahme.SQL.Clear;
  DataModule2.qryTitelaufnahme.SQL.Add('SELECT ausleiher, ausgeliehen, ausleihdatum FROM TTitelaufnahme WHERE ID ='
  +i);
  DataModule2.qryTitelaufnahme.Open;
  DataModule2.qryTitelaufnahme.Edit;
  DataModule2.qryTitelaufnahme.FieldByName('ausleiher').AsString := user;
  DataModule2.qryTitelaufnahme.FieldByName('ausgeliehen').AsBoolean := true;
  DataModule2.qryTitelaufnahme.FieldByName('ausleihdatum').AsDateTime := now;
  DataModule2.qryTitelaufnahme.Post;
end;
wenn diese Prozedur ausgeführt wird, meckert er von wegen dass 'Die Schlüsselspalteninformationen ungenügend oder inkorrekt sind und dass zu viele Zeilen von der Aktualisierung betroffen sind'. Was hat das zu bedeuten....? Ich will die Daten nur für das Medium zuweisen, das gerade angezeigt wird, also greife ich die ID einfach aus einem Label ab. user ist eine globale variable, in die schon beim FormActivate geschrieben wird.

Saulo 29. Jul 2003 18:10

Re: Allgemeine Fragen zu Access + Delphi
 
und was ist hier nun wieder falsch? also die ausgeliehenen medien sollen dem user nochmal in einer übersicht gezeigt werden. ich dachte eiegtnlich das geht ganz leicht über eine Abfrage...

Delphi-Quellcode:
procedure TForm2.Button8Click(Sender: TObject);
begin
  AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Add('SELECT medium, autor, titel, id, ausleihdatum FROM TTitelaufnahme WHERE ausleiher = '
  + user);
  showmessage(AdoQuery1.SQL.Text); //hier lasse ich mir den SQL-Text anzeigen, aber sehe da keine fehler...
  AdoQuery1.Open;
  if AdoQuery1.RecordCount = 0 then
  showmessage('Sie haben zur Zeit keine Medien ausgeliehen.')
  else
  begin
    form2.Label22.Caption := AdoQuery1.FieldByName('medium').AsString;
    form2.Label23.Caption := AdoQuery1.FieldByName('autor').AsString;
    form2.Label24.Caption := AdoQuery1.FieldByName('titel').AsString;
    form2.label25.Caption := DateToStr(AdoQuery1.FieldByName('ausleihdatum').AsDateTime);
  end;
end;
könnte es sein dass das schreiben in die tabelle beim ausleihen nicht so ganz klappt? aber die werte stehen dennoch in der Tabelle....
DAS IST DOCH ECHT ZUM MÄUSE MELKEN!!!!!!!!!! und dabei wird das programm morgen schon vorgestellt..... :?

Saulo 29. Jul 2003 18:14

Re: Allgemeine Fragen zu Access + Delphi
 
ach ja und der fehler beim letzteren lautet: Parameter (username) hat keinen Standardwert.
Das klingt doch ziemlich danach dass das nicht in der Tabelle steht? aber es steht drin, und außerdem käme es dann ja auch nicht über die if-schleife...

Sharky 30. Jul 2003 08:17

Re: Allgemeine Fragen zu Access + Delphi
 
Delphi-Quellcode:
procedure TForm2.Button8Click(Sender: TObject);
begin
  AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Add('SELECT medium, autor, titel, id, ausleihdatum FROM TTitelaufnahme WHERE ausleiher = '
  + user);
Von welchem Typ ist denn "ausleiher" in der Tabelle? So wie Du es schreibst müsste es ein Integer (zahl) sein. Sollte es aber ein String sein musst Du die Variable user natürlich wieder in QuotedStr setzten.

Schreib mal wie das Programm in der Schule angekommen ist?!

Saulo 1. Aug 2003 16:44

Re: Allgemeine Fragen zu Access + Delphi
 
danke für die antwort! wusste nicht dass man auch variablen vom typ string als QuotedStr bezeichnen muss....

also in der schule ist es nicht besonders angekommen, da ich einfach nicht fertig geworden bin... aber zum glück war eine andere gruppe, die vorstellen musste, die ganze zeit mit dem fehlerhaften quelltext beschäftigt, so dass meine gruppe dann nicht mehr zum vorführen gekommen ist. dennoch müssen wir das programm bis nach den sommerferien fertigstellen und dann wird es der stadtbücherei zur verfügung gestellt... und alles was ich dafür gekriegt habe ist eine 4+ für das Projekt (da es nicht fertig war) und ein eis :spin:
aber immerhin... :) so spart man geld, in dem man den informatikkurs eines gymnasiums ausnutzt :) aber egal, nach den sommerferien bin ich dann in der oberstufe, und da ist leider kein informatikkurs zustande gekommen :cry: so wird die zukunft potenzieller informatikstudenten verbaut.... LOL aber jetzt habe ich erst mal 6 wochen ferien und denke da nicht mehr drüber nach (schöne ferien an dieser stelle an alle!!!). und ich hoffe ich kriege es irgendwann nochmal gebacken.... ansonsten weiß ich ja wo ich geholfen werde :wink:

Saulo 5. Sep 2003 21:30

Re: Allgemeine Fragen zu Access + Delphi
 
Also gut, weiter im text... :?
es soll ein datensatz gefunden werden, von dem nur die ID bekannt ist. diese soll aus einem Edit-Feld ausgelsen werden. Das geht ja nun nicht mit
SELECT * FROM Tabelle WHERE ID = QuotedStr(Edit1.Text)
da die ID ein Iteger-Wert und somit mit dem String nicht zurechtkommt. Soweit ich weiß geht das irgendwie mit Locate, oder? Aber da bin ich auch schon mit meinem Latein am Ende.

Sharky 6. Sep 2003 08:39

Re: Allgemeine Fragen zu Access + Delphi
 
Zitat:

Zitat von Saulo
Also gut, weiter im text... :?

Nach über einem Monat? :shock:

Lasse einfach das QuotedStr weg. Dies wird nur bei einem Zahlenvergelicht nicht benötigt.

Touchdown 6. Sep 2003 10:47

Re: Allgemeine Fragen zu Access + Delphi
 
@Saulo

Was ist eigentlich von dir in diesem Programm? Wie wäre es mal mit nachdenken bzw. in schlauen Büchern lesen. Du machst eher den Job einer Tipse, so wirst du nicht lernen zu programmieren wenn man dir jedes Detail auf die Nase binden muss.

Kannst froh sein, dass ich nicht dein Informatiklehrer bin!

Dabei bist wahrscheinlich nicht mal zu doof fürs coden, sondern einfach nur zu faul um nach eigenen Lösungen zu suchen!

Saulo 6. Sep 2003 12:37

Re: Allgemeine Fragen zu Access + Delphi
 
@ Sharky
wie gesagt, ich war im Urlaub!

@ Touchdown
ich kann deine kritik verstehen, und du bist auch nicht der erste der es so hinstellt, aber ich habe dazu schon stellung genommen. sehr viel an dem programm ist von mir, ich muss nur die grundstruktur dazu lernen. und wenn du mein informatiklehrer wärst, hättest du sie mir vielleicht auch mal irgendwann beigebracht! und das ist das problem! sowas haben wir nie in der schule gemacht, und ich vermute sogar dass er selber nicht wirklich plan davon hat. 3 von 4 gruppen haben eine ungenügende leistung erbracht, eben weil diese kenntnisse fehlten, eine gruppe konnte sich dadurch retten, dass sie wenigstens ETWAS funktionierendes hatte, ob das nun brauchbar war oder nicht sei dahingestellt. und ich bin ganz sicher nicht zu faul um probleme selber zu lösen, ich kenne mich lediglich auf diesem gebiet nicht genügend aus. wir haben niemals in der schule datenbankprogrammierung durchgenommen, und jetzt wird von uns verlangt ein so komplexes system zu schreiben. ohne die hilfe in disem forum kann ich diesen anforderungen nicht nachkommen, es ist nicht so dass ich sofort die frage poste wenn der compiler meckert, sondern suche selber nach den fehlern, wenn ich sie nicht finde, suche ich hilfe im forum, und auch dann sitz ich nicht nur rum und warte auf die antwort sondern stöbere in der delphi-hilfe. aber mit den einträgen dort kann ich nicht sehr viel anfangen, da sie meistens nur das system von methoden preisgeben, selten jedoche in konkretes beispiel liefern. insofern mache ich sicherlich nicht den 'Job einer Tipse', da ich wie gesagt nur die grundstruktur dieser art von programmierung lernen muss. das was ich hier geposted habe ist bei weitem nicht alles was das programm zu bietene hat. ich werde es nach der fertigstellung ins forum stellen.

lange rede, kurzer sinn, dake erst mal für die antwort von sharky,
und touchdown: ich weiß dass ich unerfahren bin, aber ich denke nicht dass man es mir zum vorwurf machen kann. :|

Touchdown 6. Sep 2003 12:58

Re: Allgemeine Fragen zu Access + Delphi
 
Es gibt halt mittlerweile eine Menge Leute die auf diese Art und Weise durch das Abi und sogar Studium kommen, aber alle scheitern sie spätestens im Job!

Eine Lösung man dir erzählt, sitzt lange nicht so gut als wenn du sie dir selbst erarbeitest. Ich hatte schon den Eindruck, dass du das direkte Medium zwischen diesem Forum und deinem Compiler bist :mrgreen:

Vieles hättest du leicht durch googeln rausfinden können, aber egal. Du kannst natürlich weiter Fragen stellen, aber du solltest doch härter an deinen Problemlösungen arbeiten. Es ist unwichtig ob dein Programm später läuft, wichtig ist, du hast es verstanden was genau passiert. Allerdings schließt ein 'verstanden haben' und ein nicht funktionierendes Programm einander natürlich aus :witch:

Saulo 6. Sep 2003 18:40

Re: Allgemeine Fragen zu Access + Delphi
 
Zitat:

Zitat von Touchdown
Vieles hättest du leicht durch googeln rausfinden können, aber egal.

ja das sagen alle, und glaub mir, da bin ich sogar von selber drauf gekommen :lol: , aber im ernst, was meinst du wie ich dieses forum gefunden habe? google kann einem in solchen problemen wirklich nicht weiterhelfen. und ich habe auch wirklich ein schlechtes gewissen bei jeder aufkommenden frage direkt das forum zu konsultieren, aber vergiss bitte nicht dass ich sehr unter zeitdruck stand (den ich mir zugegeben selber eingebrockt hatte). und ich programmiere auch nur die sachen die ich verstehe, nur ich kann nicht etwas verstehen was ich garnicht kenne. ich meine wenn ich etwas nicht verstehe steht es mir doch frei hier danach zu fragen. und glaub mir, das würde ich auch tun, da ich genau weiß dass ich den quelltext später werde erklären müssen! :wink:

Saulo 10. Sep 2003 19:14

Re: Allgemeine Fragen zu Access + Delphi
 
Ok, hier wäre auch schon die nächste frage... :oops:
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... :|

Saulo 11. Sep 2003 14:51

Re: Allgemeine Fragen zu Access + Delphi
 
hilfö...? :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz