| |
Fragen & Antworten rund um sev-KomponentenMehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: benne | Datum: 22.03.17 08:17 |
| Guten Morgen Dieter,
ich suche seit Tagen nach einem Fehler, aber bin leider bisher nicht fündig geworden.
In einem Access Projekt (2010) als adp habe ich in einem großen Hauptformular einige Unterformulare sowie Listviews, Treeviews, Datagrids.
In einem Unterformular ist ein Datagrid. Wenn hier eine Zeile geklickt wird, ändern sich die Daten im übergeordneten Formular.
Das Problem:
Wenn ich nach dem Klicken im Grid eine Textbox im Hauptformular beschreiben will, geht das nicht.
Die Ereignisse Keydown und KeyUp werden gefeuert, jedoch nicht KeyPress.
Die Textbox nimmt keine Daten an.
Erst wenn ich auf ein anderes Control (z.B. SEVCommand oder eine Treeview) klicke, wird die Tasteneingabe aktiv.
Das Projekt ist zu groß um es als Beispiel zu senden.
Hat irgendjemand eine Idee, was da schief läuft?
Früher ging das prima. Und ja, natürlich habe ich was geändert, so wie man an einem Projekt ständig weitermacht.
Zuerst dachte ich, dass es nur an meiner Entwicklungsumgebung liegt, aber jetzt melden auch die anderen User, dass sie das Problem haben.
Grüße
Bernd | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: Manfred X | Datum: 22.03.17 14:46 |
| Hallo!
Ich verstehe zwar nichts von Access, aber eventuell liegt
ein Strukturierungsproblem vor.
[I]In einem Unterformular ist ein Datagrid.
Wenn hier eine Zeile geklickt wird,
ändern sich die Daten im übergeordneten Formular.[/I]
Hast Du die Kommunikation zwischen dem untergeordneten und dem
Träger-Formular über ein Event im untergeordneten Formular geregelt? | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: Franki | Datum: 23.03.17 02:11 |
| Hallo Dieter,
diese Antwort verwundert mich etwas.
Immerhin bietest du deine Komponenten ja so an, dass sie auch unter Access (VBA) laufen. Also gehen wir mal davon aus, dass du schon Kenntnisse von Access hast.
Aber gut, in Access herrschen Sonderfälle was Tastatureingaben an geht. Dazu hast du ja auch diverse Hinweise in der Hilfe und diese sind auch hier im Forum zu finden. Konkrete Quellen kann ich jetzt nicht nennen, da ich zwar mit Access Datenbanken arbeite aber nicht mit Access selbst.
Gruß
Frank | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: benne | Datum: 23.03.17 07:36 |
| Guten Morgen alle ..
Sorry, konnte gestern nicht mehr antworten.
Zuerst mal:
Access hat ja einen sehr schlechten Ruf. Das auch, weil hier viele Anfänger arbeiten und Methoden verwenden, die nicht ganz so "hasenrein" sind.
Aber man kann in VBA auch ganz normal und sauber programmieren.
Im Gegensatz zu VB-Classic sind bestimmte Dinge (z.B. Timer) eben unterschiedlich.
Dafür hat man als Entwickler rasend schnell ein Formular mit Datenquelle und vielen Feldern gebaut.
Als Datenquelle nehme ich einen SQL-Server.
Nach dem Motto: So viel wie möglich in VBA machen, da weiß man, wie was abläuft.
@Manfred:
Wenn ich im Grid auf eine Zeile klicke, wird im Parent Formuluar eine Property Let aufgerufen, die dann ein anderes Formular ansteuert.
Also:
Im Grid das Event "CellKlick"
Im Parent eine Property
In einem anderen Form ebenfalls eine Property
Also im Grid ist die Liste aller Datensätze, im anderen Formular die Detailanzeige.
Natürlich alles viel komplexer, weil es sich um eine Terminologie-Datenbank handelt.
Aber im Grunde ist das der Ablauf.
Ich habe gestern alles nochmal durchgekaut und die "Signalwege" untersucht.
Nach dem Klick im Grid läuft eben verdammt viel ab ...
Eine richtige Ursache habe ich (noch) nicht gefunden.
Der Focus wird ein paar Mal an andere Forms übergeben und wechselt dann zurück in das übergeordnete Formular.
OK, diese Aktion ist buggy, aber es war eine Lösung:
Ich habe ein Command Control reingesetzt, das als erstes den Focus erhält. Eine Funktion ist nicht drauf, auch ist das Feld nicht so richtig erkennbar. Es ist einfach das Opferfeld für den Focus.
Nun tut alles wieder, alle Felder sind beschreibbar.
Ich werde in irgendeiner Nacht mal in aller Ruhe alles nochmal durchgehen. Vielleicht finde ich das Problem.
Auf jeden Fall sind die Grids innerhalb Access manchmal etwas "anders" ...
Wenn ich die Tools von Dieter jedoch nicht mehr hätte, dann wäre ich aufgeschmissen!
Leider will er einfach kein Treeview-Control bauen.
Vielen Dank an alle für die Antworten
Bernd | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: Manfred X | Datum: 23.03.17 13:29 |
| Hallo!
Du greift von einem untergeordneten Formular direkt auf die Eigenschaften
des Hauptformulars zu?
Schon das kann zu Folgeproblemen führen.
Richte in dem Unterformular ein öffentliches Ereignis ein und löse es
gegebenenfalls aus (im CellClick des Unterformulars).
In der Hauptform wird dieses Ereignis verarbeitet und die Daten-Anzeige
aktualisiert (eventuell den erforderlichen Steuerwert als Event-Parameter
übergeben). | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: Franki | Datum: 24.03.17 01:52 |
| Zitat: | |
Zuerst mal:
Access hat ja einen sehr schlechten Ruf. Das auch, weil hier
viele Anfänger arbeiten und Methoden verwenden, die nicht
ganz so hasenrein sind.
| |
Ok, aber bei Anfängern hat es deswegen einen guten Ruf.
Zitat: | |
Aber man kann in VBA auch ganz normal und sauber programmieren.
Im Gegensatz zu VB-Classic sind bestimmte Dinge (z.B. Timer)
eben unterschiedlich.
| |
Natürlich muss / sollte man immer sauber programmieren, egal ob VBA oder .NET oder VB.Classic. Das war schon immer so, manche Leute konnten es, manche halt nicht.
Zitat: | |
Dafür hat man als Entwickler rasend schnell ein Formular mit
Datenquelle und vielen Feldern gebaut.
Als Datenquelle nehme ich einen SQL-Server.
| |
Na ja, das ging auch unter VB.Classic schon automatisch.
For Each DBFeld in Datenbank erstelle je nach Typ ein Eingabefeld auf dem Formular usw. Egal ob SQL Server oder Access DB oder sogar MyS
Zitat: | |
Nach dem Motto: So viel wie möglich in VBA machen, da weiß
man, wie was abläuft.
| |
Genau so sehe ich das auch, aber man sollte die Möglichkeiten nutzen die geboten werden.
Und wenn die SEV Komponenten halt unter Access weniger Möglichkeiten bieten, dann muss man sich damit auseinanderstzen ob man halt VBA oder VV verwendett.
Ich habe früher auch mit VBA gearbeitet, bin dann aber auf VB umgestiegen, weil VBA doch diverse Einschränkungen hatte (und noch hat?) VBA nutze ich nur noch privat bei Corel für Eigenbedarf. | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: benne | Datum: 24.03.17 11:33 |
| Hallo Manfred,
das Hauptformular hat keine eigenen Daten sondern dient nur als Steuerung.
Aber deine genannte Methode macht mich nachdenklich.
Ich könnte die Ereignissteuerung generell umdrehen.
Schönes Wochenende!
Bernd | |
Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis | | | Autor: Franki | Datum: 25.03.17 02:57 |
| Das erinnert mich an die damalige Diskussion ob MDI oder SDI Anwendungen besser sind.
Mein Fazit damal: Kommt auf den Einzelfall an, pauschal kann man das nicht beantworten.
Gruß
Frank | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|