Seite 1 von 1
Daten in Tabellen-Kontrollfeld ändern wenn SQL-Abfrage
Verfasst: Fr 24. Feb 2012, 10:32
von hwoehrle
Hallo,
ich würde gerne in einem Formular gerne mehrere Datensätze gleichzeitig bearbeiten können. Binde ich dazu in einem Formular ein Tabellen-Kontrollfeld ein, funktioniert dies auch prima. Allerdings nur solang die Datenquelle des Formulars eine Tabelle und keine SQL-Abfrage ist.
Ziel ist außer einer schnöden ID-Nummer (BauteilID) einen zugeordneten Klartext (KurzBez) innerhalb des Tabellen-Kontrollfeldes anzuzeigen, welcher aber in einer anderen Datentabelle gespeichert ist...
Hat jemand einen Vorschlag? Oder versteht zumindest was ich meine?
Viele Grüße
Heiko
Re: Daten in Tabellen-Kontrollfeld ändern wenn SQL-Abfrage
Verfasst: Fr 24. Feb 2012, 17:50
von pmoegenb
Hallo Heiko,
ich kann dir dazu nur soviel mitteilen.
Mit einem SELECT (auf Deutsch Abfrage) können nur Daten angezeigt werden. Dein Kontrollfeld sieht aber Daten hinzufügen, Bearbeiten und Löschen vor.
Re: Daten in Tabellen-Kontrollfeld ändern wenn SQL-Abfrage
Verfasst: Sa 25. Feb 2012, 19:12
von F3K Total
Hallo,
einen Trick gibt es, Daten aus mehreren Tabellen anzeigen und ändern zu können, neue Datensätze hinzuzufügen ist dabei aber nicht möglich.
Es müssen beide Primärschlüssel in der Abfrage vorkommen, und es muß der Modus "SQL Code analysieren" eingestellt sein.
Siehe Beispiel anbei, Formular keine_Neudaten_Klartext_aenderbar.
Viel Erfolg damit,
Gruß R
Re: Daten in Tabellen-Kontrollfeld ändern wenn SQL-Abfrage
Verfasst: Mo 27. Feb 2012, 12:09
von gogo
Prinzipiell gilt, dass der Inhalt Deines Tabellenfeldes immer eine SQL-Abfrage ist, auch wenn dort 'Tabelle' steht. Du kannst jede SQL-Abfrage bearbeiten, wenn sie dies SQL-technisch zulässt - d.h. auch verknüpfte Tabellen. Wichtig ist dabei, dass alle Alias richtig gesetzt sind etc. Änderungen sind dann verboten, wenn Du mit einer Änderung z.B. mehrere Datensätze simultan ändern würdest. Abfragen mit berechneten Feldern sind meist auch nicht veränderbar - das kommt immer auf die Datenbank drauf an in der die Daten stehen.
Ich nehme in Deinem Fall aber mal an, dass KurzBez über eine ID an Deiner Haupttabelle hängt - d.h. Du hast eine Tabelle mit Baustoffen und eine mit 'KurzBez'. In der Baustofftabelle gibt's die Spalte 'KurzBez' in der als Fremdschlüssel die IDs aus der Tabelle mit den 'KurzBez' stehen.
Das wäre ein klassischer Fall für ein Listenfeld:
Die Spalte 'KurzBez' in ein Listenfeld umwandeln
Als "Art des Listeninhaltes": "SQL" auswählen und als
"Listeninhalt" eine Abfrage definieren, die in Spalte 0 den Text der Kurzbezeichnung und als Spalte 1 die ID der Kurzbezeichnung hat.
z.B.:
Code: Alles auswählen
SELECT `KurzBez`, `KurzBezID` FROM `Tabelle_KurzBez` AS `TK`;
In der Liste stehen dann die KurzBez, und gespeichert werden die KurzBez-IDs.
Das Tabellenfeld sollte dann problemlos zu bearbeiten sein.