OnActivate, OnShow
-
Hallo,
3 Formulare. Ein Hauptmenü, von dort aus werden Form2 und Form3 aufgerufen.
In Form3 rufe ich Form2 auf, speichere dort einen neuen Datensatz und nach dem Close wird in Form3 eine ComboBox neu aufgebaut mit den neuen Inhalten der Tabelle.
Wenn ich nach dem Speichern in Form2 ein paar Sekunden warte, dann wird es in Form3 auch aktualisiert, ansonsten ist der neue Eintrag nicht vorhanden. Direkt nach dem Aufruf von Form2 ist der Aufruf der Funktion zum Füllen der ComboBox.
Datenbank: Access
Wenn ich aber in der Form3 direkt in die Tabelle schreibe und in der gleichen Funktion direkt danach die Funktion zum Füllen der ComboBox aufrufe, dann ist der neue Eintrag auch sichtbar.
Wer kann da helfen ?
-
Du musst dein Form3 nach eintrag erst aktualisieren dann Form2 Schliessen.
In Form3 OnShow lässt du dein ComboBox immer aktualisieren.Bei Form2 bei den Button Schliessen:
Form3->Show(); Form2->Close();Das habe ich bei einen Programm bei mir so gemacht.
Wenn Form3 jedesmal aufgerufen wird zeigt er immer die Aktuelle ComboBox an.
-
Hallo,
muss an Access liegen. Denn das Problem ist das selbe. Wenn ich warte geht es, sonst nicht. Ich werde jetzt sqlite probieren und meine Datenbank umstellen.
-
Darf ich fragen warum du nicht Mysql benutzt?
-
Hallo
Oder Firebird oder SQLLite oder Postgre...
es gibt einige gute (für private Zwecke) kostenlose Datenbanken die besser sind als Access.bis bald
akari
-
Hallo,
danke für die Infos. Darf ich nochmal doof nachfragen ?!
MySQL kann ich kommerziell nutzen ?
Der Vorteil für mich in Access war, dass der Kundenrechner kein Access benötigt und ich außer meiner exe-Datei nur die Datenbank auf den Rechner kopieren musste und es lief. Kann ich das mit MySQL auch so machen ?
Im aktuellen Projekt hatte ich das geschilderte Problem nicht, weil ich alles in einer Form mit Kartenreitern gelöst habe. Für ein neues Projekt ist es aber nun anders, daher die Überlegung. Zudem bläht sich Access furchtbar auf und muss oft reorganisiert werden.
Danke !
-
Hallo
Nein für den kommerziellen Einsatz must du für MySQL eine Lizenz kaufen. Und auf dem Zielrechner must du den MySQl Server installieren.
Für deine Zwecke scheinen SQLlite oder Firebird embedded richtig : keine Installation und kommerziell frei.
bis bald
akari
-
Hallo,
hab ich gemacht, Verbindung klappt (BDE). Nun aber eine Frage - ich öffne aus meinem Projektverzeichnis die fdb-Datei. Jedoch greift er auf Borland Shared\Data usw. zu und legt dort z. B. neue Tabellen an. Diese Tabellen werden auch als eigene Files abgelegt. In diesem Ordner gibt es keine fdb-Datei sondern nur eine gdb. Aber in dieser sind meine Tabellen nicht sichtbar. Beim Versuch die gleiche Tabelle nochmal zu erzeugen bekomme ich die Fehlermeldung, dass diese bereits da wäre.
Was muss ich machen um auf meine fdb-Datei im Projektordner Zugriff zu haben und dann auch mit IBOConsole den aktuellen Stand sehen ?
Danke