vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
Mehrere 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrere Forms mit Datagrid unter Access - Kein KeyPress Ereignis 
Autor: ModeratorDieter (Moderator)
Datum: 22.03.17 14:07

Sorry, aber hierzu habe ich absolut keine Idee.
Ich muss auch zugeben, dass ich kein Access'ler bin...

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel