![]() |
Datenbank: Access • Version: 2k • Zugriff über: ADO
SQL Ausführen / Listbox aktualisieren
Hallo NG,
ich habe folgendes Schema: AccessDB -> ADOConn => [ADOQuerys] => ADOQuery1 -> DataSource1 -> DBLookupListBox1 => ADOQuery2 -> DataSource2 -> DBLookupListBox2 ADOQuery1 greift auf Tab1 zu und der Inhalt eines Feldes in Tab1 soll als Where Klausel für ADOQuery2 dienen. Also zeige ich den Inhalt der Tab1 in der DBLookupListbox1 an. Nach Auswahl des Inhalts in der Box1 soll der Inhalt in Box2 aktualisiert werden (entsprechend der neuen Where Klausel aus Box1). str_sql:='SELECT PEmployee.personalId, PEmployee.name, PEmployee.forename, PEmployee.rotation, PEmployee.workcenter '; str_sql:=str_sql + 'FROM PEmployee '; str_sql:=str_sql + 'WHERE '; str_sql:=str_sql + dblookuplistbox1.KeyValue + ';'; ADOQry2.SQL.Clear; ADOQry2.SQL.Add(str_sql); und was kommt dann ???? Wie aktualisiere ich den Inhalt in der Box2 Ich habe jetzt schon alles Mögliche probiert, aber irgendwie habe ich ein großes Anfängerbrett vor dem Kopf Danke für alle Hinweise Tom |
Re: SQL Ausführen / Listbox aktualisieren
Delphi-Quellcode:
das fehlt noch dann sollte es klappen
ADOQry2.Open;
gruß reli |
Re: SQL Ausführen / Listbox aktualisieren
Ausserdem dürfte der WHERE-Clause ungültig sein, da er keinen Vergleich, sondern nur einen Wert enthält. Es fehlt vor dem Wert ein 'Feldname = '. Ausserdem - muss Access-SQL mit einem ';' terminiert werden...?
|
Re: SQL Ausführen / Listbox aktualisieren
ADOQyr2.Open funktioniert bei mir nicht. Ich bekomme zwar keine Fehlermeldung aber Box2 bleibt leer.
Ich habe jetzt was anderes gemacht und jetzt scheint es zu funktionieren: ADOQry2.active:=false; DataSet2.Enabled:=false; DataSet2.Enabled:=true; ADOQry2.active:=true; Ich hoffe das geht so auf Dauer und ich bekomme nicht irgendwann eine Fehlermeldung. Danke trotzdem. Eine Frage noch zur IDE bzw dem Code Editor. Ich komme von der MS Schiene (VB Net) und habe nur Delphi nutzen wollen weil ich in dem Fall keine weiteren Dateien oder sonstige Installationsnotwendigkeiten (NET Framework, DLL's usw.) haben wollte. Aber die Funktionalität des Editors in Delphi ist für mich schon sehr gewöhnungsbedürftig. Die Codevervollständigung funktioniert seltsam zb: ---------------------- box1.enabled:=True -> hier bekomme ich VB gleich TRUE oder FALSE zur Auswahl - oder box1. -> manchmal funktioniert das Anzeigen der Auswahlmöglichkeiten und manchmal nicht. - meistens nicht bei copy/paste code der Cursor springt bei Zeilenwechsel nicht zum Ende des Codes sondern steht "irgendwo" (Tabulator funktioniert "komisch" ) ---------------------- Kann man die Funktionalität irgendwo einstellen oder gibt es Editorfunktionalitätserweiterungen? Aber na gut, muß man sich vielleicht nur daran gewöhnen :-) Tom |
Re: SQL Ausführen / Listbox aktualisieren
Hallo,
Zitat:
Die Where Klausel beinhaltet alle notwendigen Angaben. Sie sind in einer Tabelle als String hinterlegt. zb.: Titel='General' and Marker='XX' So habe ich die Möglichkeit nachträglich Abfragen hinzuzufügen oder zu ändern - ohne etwas am Code zu ändern. Das ist für Reporte sehr nützlich. Gruß Tom |
Re: SQL Ausführen / Listbox aktualisieren
Zitat:
2. bei c&p liegt meistens irgendwo ein fehler vor - wenn vor dem eintrag irgendwo was ned klappt dann will er dass du zuerst den fehler beseitigst bevor er dir da was vernünftiges anzeigt -> warum kA 3. du meinst mit enter oder mit pfeiltasten? bei enter rückt er (in den neueren delphi versionen - hab ja kA welche du benutzt) um 2 leerzeichen ein. delphianer nutzen leerzeichen anstelle der tabs aus der MS welt. der tabulator sollte auch defaultmäßig 2 leerzeichen anstatt eines tabs machen :-) es gibt unter tools->optionen->editor-optionen eine editor einstellung. damit kannste tasten usw auf die VS welt umstellen. (gerade bei delphi 2006 geschaut weil gerade offen) gruß reli edit: ";" muss nicht aber kann... |
Re: SQL Ausführen / Listbox aktualisieren
Statt DataSet2 soll es DataSource2 heissen, nehme ich an? Der ganze Zinnober sollte aber nicht nötig sein, ein AdoQry2.Close vor dem Ändern des SQL-Statements und ein AdoQry2.Open danach sollten reichen, sonst 'is da was komisch'. Open bzw Close sind übrigens identisch mit Active:=True bzw False.
|
Re: SQL Ausführen / Listbox aktualisieren
Hallo,
Zitat:
Aber ohne diesem "Zinnober" :-) funktioniert es nicht. Habe es gerade noch mal ausprobiert. Die Box2 bleibt leer. wt2_ADOQryFilterGroup.Close; wt2_ADOQryFilterGroup.SQL.Clear; wt2_ADOQryFilterGroup.SQL.Add(str_sql); wt2_ADOQryFilterGroup.Open; Tom |
Re: SQL Ausführen / Listbox aktualisieren
1. naja es gibt ja noch mehr wie true/false... wie wärs mit box1.enabled := (box2.itemindex > 2); oder so? kann er ja nicht wissen was du da machen willst :-)
Das ist wirklich anders bei Delphi - Boolsche Funktionen ermöglichen in VB nun mal nur 0/1 Bei Delphi ist enabled also nicht nur 0/1 habe ich jetzt gelernt :-) 2. bei c&p liegt meistens irgendwo ein fehler vor - wenn vor dem eintrag irgendwo was ned klappt dann will er dass du zuerst den fehler beseitigst bevor er dir da was vernünftiges anzeigt -> warum kA Kann sein das bei c/p irgendwelche Leerzeichen oder Tabs mit kopiert werden. 3. du meinst mit enter oder mit pfeiltasten? bei enter rückt er (in den neueren delphi versionen - hab ja kA welche du benutzt) um 2 leerzeichen ein. delphianer nutzen leerzeichen anstelle der tabs aus der MS welt. der tabulator sollte auch defaultmäßig 2 leerzeichen anstatt eines tabs machen :-) es gibt unter tools->optionen->editor-optionen eine editor einstellung. damit kannste tasten usw auf die VS welt umstellen. (gerade bei delphi 2006 geschaut weil gerade offen) Ich benutze noch D6 - Asbach Version :-( gruß tom Sorry - habe falsch zitiert. |
Re: SQL Ausführen / Listbox aktualisieren
Warum verwendest du übrigens eine DBLookupListbox und keine einfache DBListBox? Zur Codevervollständigung noch: der Punkt muss 'frisch' sein, sonst springt das Ding nicht an. Also zB nach c&p den Punkt noch mal wegmachen und neu eingeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
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-2025 by Thomas Breitkreuz