Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Microsoft Microsoft Office

GELÖST

Datensatzwechsel im Ufo auf Hfo anwenden

Mitglied: Janni

Janni (Level 2) - Jetzt verbinden

07.12.2010, aktualisiert 12:05 Uhr, 7028 Aufrufe, 5 Kommentare

Moin,

komme nicht so recht weiter, folgendes Problem: Ich habe ein Formular mit einem Unterformular (Ufo) in Datenblattansicht. Bei einem Datensatzwechsel im Ufo (der Benutzer klickt in einen anderen Satz) soll dieser neu ausgewählte Datensatz auch im Hfo angezeigt werden. Leider funktionieren die ganzen Ereignisse irgendwie im Ufo nicht (Form_Current, Click, etc.) und der Satz im Hfo wird nicht gewechselt. Dabei ist es egal, ob das Ufo verknüpft oder nicht verknüpft ist
Habe auch schon versucht über ein Textfeld im Hfo die Datensatznummer anzeigen zu lassen. Dies geht auch wunderbar, aber die normalen Ereignisse greifen nicht, da der Inhalt selbst ja nicht geändert wird (=me!Ufo!Steuerelement).

Kennt Jemand ein Ereignis was bei dem Textfeld greifen würde, bzw. eine andere Lösung um den Datensatz im Hfo zu wechseln ?

Das ganze ist noch in einer mdb-DB realisiert (Access 2003).

Danke schon einmal
Janni
Mitglied: jhinrichs
07.12.2010 um 14:24 Uhr
Hallo,

eine Lösung (ich weiß nicht, ob es die eleganteste ist), ist folgende:

Im Unterformular definierst Du folgende Prozedur, wobei "Key" der Primärschlüssel oder zumindest ein eindeutiger Schlüssel ist:
01.
Private Sub Form_Click() 
02.
    Rem Prozedur OpRecord des Hauptformulars mit dem Schlüssel des angeklickten Datensatzes als Argument aufrufen 
03.
    Form_frmHfo.OpRecord(Me.Key)  
04.
End Sub
Damit schaltet das Hauptformular um, wenn Du auf den "Datensatzbezeichner" klickst. Wenn das Hauptformular auch bei jedem Klick in ein Datenfeld umschalten soll, musst Du die Zeile
01.
Form_frmHfo.OpRecord(Me.Key) 
in die "Beim Klicken"-Ereignisprozedur jedes Datenfeldes schreiben.

Im Code des Hauptformulars (frmHfo) wir dann die Prozedur OpRecord definiert:

01.
Public Sub OpRecord(Key As Long) 
02.
 
03.
    Dim rst As DAO.Recordset 
04.
    Dim stcond As String 
05.
     
06.
    Set rst = Me.Recordset 
07.
    Rem Bedingung formulieren 
08.
    stcond = "Key=" & Key    
09.
    Rem Ersten passenden Datensatz suchen, da Schlüssel eindeutig, braucht man keine weiteren zu suchen 
10.
    rst.FindFirst (stcond) 
11.
        
12.
End Sub
Das ist jetzt alles natürlich nur ein Grundgerüst ohne Fehlerbehandlung etc. Wenn man das Ganze in der Entwurfsansicht von Access erstellt, muss man ziemlich aufpassen, beim Schreiben der Ereignisprozeduren auch das richtige Objekt ausgewählt zu haben. Es empfiehlt sich auf jeden Fall im VBA-Editor eine Kontrolle, dass die Form_Click() und FeldXY_Click()-Prozeduren auch dem Unterformular und die OpRecord-Prozedur dem Hauptformular zugeordnet sind bzw. ist.

Grüße
Bitte warten ..
Mitglied: Janni
07.12.2010 um 17:09 Uhr
Vielen Dank, funktioniert super.

Allerdings mit einer kleinen Einschränkung, das Ereignis Click funktioniert in einem Kombinationsfeld nicht. Hast Du eine Idee warum ?
Wenn ich das ganze über ein weiteres Textfeld mit Verweis auf die richtige Spalte des Kombinationsfeldes realisiere, dann aktualisiert er zwar das Hfo, aber er aktualisiert alle Felder dieses Textfeldes. Das sieht nicht wirklich schön aus.
Bitte warten ..
Mitglied: jhinrichs
08.12.2010 um 10:47 Uhr
Hallo,

beim Kombinationsfeld wird das Ereignis "Click" offenbar erst ausgelöst, wenn ein Wert aus der Liste angeklickt wird. Daher braucht man zusätzlich den Aufruf der OpRecord-Prozedur beim Fokuserhalt oder Hingehen, also Ereignis "GotFocus" oder "Enter". Bei "Click" muss der Aufruf aber bleiben, da sonst das Hfo nach der Auswahl aus der Liste nicht sofort, sondern erst bei der nächsten Auswahl aktualisiert wird. Auch im Tectfeld kann man statt Click natürlich Enter oder GotFocus wählen, was sogar geschickter ist, da dann das Hfo auch aktualisiert wird, wenn man das Textfeld nicht mit der Maus, sondern per Tab-Taste auswählt.
Der Gesamtcode im sieht dann so aus:
01.
Private Sub Form_Click() 
02.
    Form_frmHfo.OpRecord (Me.Key) 
03.
End Sub 
04.
 
05.
Private Sub Kombinationsfeld_Click() 
06.
    Form_frmHfo.OpRecord (Me.Key) 
07.
End Sub 
08.
 
09.
Private Sub Kombinationsfeld_Enter() 
10.
    Form_frmHfo.OpRecord (Me.Key) 
11.
End Sub 
12.
 
13.
Private Sub Textfeld_Enter() 
14.
    Form_frmHfo.OpRecord (Me.Key) 
15.
End Sub
Das Neu-Hinzufügen von Datensätzen über das Ufo muss auch noch extra abgefangen werden.
Grüße
Bitte warten ..
Mitglied: Janni
08.12.2010 um 12:50 Uhr
Moin,

bei Enter oder GotFocus bekomme ich den Fehler 32502: Der Wert, den Sie für das Feld \"|\" eingegeben haben, ist ungültig.
Dabei ist es egal, ob ich das Enter auf das Kombifeld oder ein Textfeld definiere.
Dieses Feld existiert aber gar nicht und mit der Nummer kann sogar Google nicht so recht etwas in Verbindung mit Access anfangen.
Bitte warten ..
Mitglied: jhinrichs
09.12.2010 um 10:09 Uhr
Moin,
komisch, meine Antwort von gestern ist irgendwie "wech"...
Also nochmal:
Wann genau kommt die Fehlermeldung? Was ist markiert, wenn Du dann auf "Debuggen" klickst? Was für Code entsteht denn, wenn Du im Eigenschaftenfenster des Steuerelements beim Ereignis "Hingehen" dann "Code" auswählst?
Vielleicht postest Du hier einmal Deinen Code, bei mir funktioniert das nämlich (getestet unter Access 2010, 2007 und 2002).
Grüße
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Access 2010 Probleme mit HFO Registersteuerlent Button in UFO zum Registersteuerlent springen
Frage von thomas1972Microsoft Office1 Kommentar

Hallo , ich habe eine kleine Frage bzw. Problem, ich habe ein Formular Test1 , in diesen sind div ...

Entwicklung
Mockup - Tool für Anwender
gelöst Frage von ernownEntwicklung2 Kommentare

Hi Community, habe mal eine Frage, da ich auf der Suche nach einem einfachen, möglichst kostengünstigen Mockup- bzw. Storytelling-Tool ...

Batch & Shell
Batchdatei auch in den Unterverzeichnissen anwenden
Frage von joejoestoBatch & Shell7 Kommentare

Hallo aus Norddeutschland Ich habe eine Batchdatei mit folgendem Inhalt erstll : diese liegt in dem Verzeichniss in dem ...

Windows Userverwaltung
GPO: Benutzerkonfiguration nicht auf Server anwenden
gelöst Frage von KMUlifeWindows Userverwaltung9 Kommentare

Hallo zusammen! Ich habe eine Frage bezüglich den Computer/Benutzerkonfigurationen. Ich weiss nicht ob ich was Grundlegendes an der OU-Struktur ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Windows Server
DNS Forwarding an andere Domäne
Frage von detox91Windows Server9 Kommentare

Hallo, für Testzwecke haben wir bei uns eine zweite Windows Domäne (B.local) aufgebaut, welche komplett unabhängig und isoliert der ...