von ejomi » Mi, 06.09.2006 15:35
Als erstes: verwende dazu nicht das Steuerelemet "Kombinationsfeld" sondern "Listenfeld"!
Das Listenfeld bezieht sich im Formular z.B. auf das numerische ID-Feld in Deiner Haupt-Datenbank. Es muß natürlich auch noch eine zweite Tabelle mit den gewünschten Text-Einträgen und den zugehörigen ID-Nummern vorhanden sein!
Im Beispiel nenne ich diese zweite Tabelle "MeineTextliste", das Index-Feld "ID_Text" und das Feld mit den Text-Einträgen "AuswahlText".
Wichtig dabei ist, daß das ID-Feld "ID_Text" das gleiche Zahlenformat hat wie das der Hapt-Tabelle (bitte nicht die IDs der Haupt-Datensätze mit den IDs der Textliste verwechseln - verwende immer gut unterscheidbare Feld-Namen!).
In den "Eigenschaften" des Listenfeldes muß demnach unter "Daten" das Feld "ID_Text" eingetragen sein während die Listen-Inhalte selbst nicht aus der Haupt-Datenbank, sondern aus der zweiten Tabelle mit den Text-Einträgen eingespeist werden - dazu folgender SQL-String in die Eigenschaft "Listeninhalt" eintragen:
SELECT `AuwahlText`, `ID_Text` FROM `MeineTextliste` ORDER BY `ID_Text`
That's it !
Wass passiert nun?
Zunächst werden Deine Auswahl-Texte nicht mehr alphabetisch sondern nach ID-Nummern sortiert angezeigt - das war ja der eigentliche Sinn der Sache.
Ausserdem ändert sich die Anzeige Deines Listenfeldes automatisch, wenn es in der Haupt-Tabelle eine gültige ID-Nummer findet:
wenn Du mit der Datensatz-Navigation des Formulars durch DeineDatenbestände klickerst, wird im Listenfeld jeweils der betreffende Text sofort angezeigt - perfekt!
Wenn Du den Eintrag ändern möchtest: einfach das Listenfeld aufklappen, einen anderen Eintrag wählen und RETURN drücken = der Eintrag (genaugenommen nur die ID-Nummer) in der Haupt-Datenbank wird sofort geändert. Solltest Du das Formular danach direkt verlassen, wirst Du u.U. noch einmal gefragt, ob diese Änderung gespeichert werden soll - sobald Du aber den Datensatz wechselst wird die Änderung sofort und endgültig eingetragen!
Gruß aus Dresden: ejomi
Als erstes: verwende dazu nicht das Steuerelemet "Kombinationsfeld" sondern "Listenfeld"!
Das Listenfeld bezieht sich im Formular z.B. auf das numerische ID-Feld in Deiner Haupt-Datenbank. Es muß natürlich auch noch eine zweite Tabelle mit den gewünschten Text-Einträgen und den zugehörigen ID-Nummern vorhanden sein!
Im Beispiel nenne ich diese zweite Tabelle "MeineTextliste", das Index-Feld "ID_Text" und das Feld mit den Text-Einträgen "AuswahlText".
Wichtig dabei ist, daß das ID-Feld "ID_Text" das gleiche Zahlenformat hat wie das der Hapt-Tabelle (bitte nicht die IDs der Haupt-Datensätze mit den IDs der Textliste verwechseln - verwende immer gut unterscheidbare Feld-Namen!).
In den "Eigenschaften" des Listenfeldes muß demnach unter "Daten" das Feld "ID_Text" eingetragen sein während die Listen-Inhalte selbst nicht aus der Haupt-Datenbank, sondern aus der zweiten Tabelle mit den Text-Einträgen eingespeist werden - dazu folgender SQL-String in die Eigenschaft "Listeninhalt" eintragen:
SELECT `AuwahlText`, `ID_Text` FROM `MeineTextliste` ORDER BY `ID_Text`
That's it !
Wass passiert nun?
Zunächst werden Deine Auswahl-Texte nicht mehr alphabetisch sondern nach ID-Nummern sortiert angezeigt - das war ja der eigentliche Sinn der Sache.
Ausserdem ändert sich die Anzeige Deines Listenfeldes automatisch, wenn es in der Haupt-Tabelle eine gültige ID-Nummer findet:
wenn Du mit der Datensatz-Navigation des Formulars durch DeineDatenbestände klickerst, wird im Listenfeld jeweils der betreffende Text sofort angezeigt - perfekt!
Wenn Du den Eintrag ändern möchtest: einfach das Listenfeld aufklappen, einen anderen Eintrag wählen und RETURN drücken = der Eintrag (genaugenommen nur die ID-Nummer) in der Haupt-Datenbank wird sofort geändert. Solltest Du das Formular danach direkt verlassen, wirst Du u.U. noch einmal gefragt, ob diese Änderung gespeichert werden soll - sobald Du aber den Datensatz wechselst wird die Änderung sofort und endgültig eingetragen!
Gruß aus Dresden: ejomi