Autor Beitrag
spacemanspiff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53
Erhaltene Danke: 1



BeitragVerfasst: Mo 20.12.10 16:13 
Hallo,

ich bin mir sicher, dass ich hier seit einiger Zeit an einem Anfängerproblem sitze, aber da ich Delphi-Neuling bin, bin ich froh, überhaupt schon so weit gekommen zu sein und lasse mir gerne auch mal was beantworten ;-)

Die Suche hier im Forum hat zwar einige interessante Sahen hervorgebracht, leider aber nichts, was in die Richtung meines Problems geht. Wahrscheinlich übersehe ich nur irgendeine Kleinigkeit.

Folgendes:
Ich habe ein Hauptframe mit einem Menü. Dort kann man über Datei->Importieren ... tadaaa... Dateien importieren. Wer hätte das gedacht? :)
Allerdings gibt es seitens der Datenbank (Stichwort: Konsistenz) folgendes Dilemma. Die Daten, die eingelesen werden (Textfiles von einer SD-Karte aus einem Messgerät) müssen Datanbankseitig mit einem Standort und einem Kunden in Verbindung gebracht werden. Also habe ich zwei DBLookupComboBoxen. In einer werden die Kunden, in der anderen die Standorte aus den Tabellen kunde bzw. standort angezeigt. Man kann erst Dateien in die Datenbank schreiben, wenn jeweils ein Kunde und ein Standort ausgewählt wurden.
Was ist nun, wenn eines der beiden (noch) nicht existiert? Dafür gibt es einen Button "Neuer Kunde" (Neuer Messort). Bei Knopfdruck erscheint eine Dialogbox mit Editfeldern. Lange Erklärung, jetzt folgt mein Problem:

Wenn ich einen Kunden eintrage (Dialogbox verschwindet), ist danach die DBLookupCombo irgendwie deaktiviert... gleiches gilt für ein DBGrid, dass ich zu Testzecken im Hintergrund habe. Ich habe bereits in der Hilfe nachgesehen, aber wenn ich das richtig verstanden habe, sollten automatisch Funktionen aufgerufen werden, die mitkriegen, wenn ein neuer Datensatz hinzu kommt. Bei mir ist aber Flaute. Auch andere Methoden, die ich mal getestet habe (Invalidate, etc.) klappen nicht.

Hat jemand eine Idee oder die Lösung zur Hand?

Vielen Dank und beste Grüße
Thomas
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 20.12.10 16:23 
Frage:

Hast Du die Eigenschaften Listfield udn Listsource der DBLookupComboboxen belegt? Wenn Ja, benötigst Du eigentlich nur die folgende Befehlsfolge:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  // Tabelle1 = ListSource.Dataset der ersten dbLookupCombobox
  // Tabelle2 = ListSource.DataSet der zweiten dbLookupCombobox

  Tabelle1.active := FALSE;
  Tabelle1.active := TRUE;
  Tabelle2.active := FALSE;
  Tabelle2.active := TRUE;



oder alternativ:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
  dblookupCombobox1.ListSource.Dataset.Active := FALSE;
  dblookupCombobox1.ListSource.Dataset.Active := TRUE;
  dblookupCombobox2.ListSource.Dataset.Active := FALSE;
  dblookupCombobox2.ListSource.Dataset.Active := TRUE;


Damit wird die jeweilige Tabelle aktualisiert. Dann solltemn die neuen Einträge gespeichert sein.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.

Für diesen Beitrag haben gedankt: spacemanspiff
spacemanspiff Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 53
Erhaltene Danke: 1



BeitragVerfasst: Mo 20.12.10 16:28 
Hi Tranx,

danke schön, das war es tatsächlich :-)
Hat auch gleich auf das Grid gegriffen. Wenn ich das also richtig verstehe, muss ich die Verbindung zur Tabelle einmal trennen und wieder öffnen und dann sind alle Elemente, die diese Tabelle als DataSet haben aktualisiert?

Gruß,
Thomas