Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
(Unter)formular(e) synchronisieren
zurück: Fragebogen Was kann Access?Eingabe über Formular+Auswertung? weiter: Erstellen einer BuchDatenbank Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Hautstaender71
Im Profil kannst Du frei den Rang ändern


Verfasst am:
27. März 2009, 19:54
Rufname:

(Unter)formular(e) synchronisieren - (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

Hallo,

gleich vorne weg, folgender Tipp wurde von mir bereits berücksichtigt FAQ 4.3 Formulare synchronisieren.

In einem Formular hab ich zwei Unterformulare jeweils in der Datenblattansicht eingebunden.

Unterformular A enthält die Datensätze mit dem eindeutigen Index dIdx. Im Unterformular B stehen die dazugehörigen Datensätze (1:n Beziehung).

Da ich nicht weiß, wie man zwei Unterformulare synchronisiert, hab ich mir mit einem Trick geholfen. Hab dem Hauptformular die gleiche Tabelle zugewiesen, wie dem Unterformular A.
Das Hauptformular und das Unterformular B lassen sich so sehr einfach über die Verknüpfungsfelder verbinden.

Für die Verbindung zwischen Hauptformular und Unterformular A hab ich den Tipp aus dem oben erwähnten FAQ genutzt.
Technisch funktioniert das zwar, allerdings gibt es ein kleines Problem:

Markiere ich eine komplette Zeile im Unterformular A, so wird diese Zeilenmarkierung immer wieder gelöscht, sofern die Markierung in einem anderen als dem aktuellen Datensatz erfolgt. Es bleibt nur noch der Datensatzzeiger erhalten und das erste Feld wird markiert. Danach muss ich die Zeile dann noch einmal auswählen, um die Zeilenmarkierung zu erhalten.

Weiter hab ich das Problem, das bei Neuanlage in Unterformular A der Nullwert des eindeutigen Index dIdx nicht an das Hauptformular übergeben werden kann. Eine Fehlermeldung erscheint. Das kann man natürlich mit IsNull abfangen, möchte aber trotzdem eine Übergabe, damit die Werte der 1:n Beziehung im Unterformular B gleich berücksichtigt werden, also leeres Unterformular B.
Momentan werden immer die Einträge des vorherigen Datensatzes angezeigt.
derArb
getting better


Verfasst am:
27. März 2009, 20:04
Rufname: derArb
Wohnort: Berlin


AW: (Unter)formular(e) synchronisieren - AW: (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

hallo,
versuch doch einmal eine Verknüpfung des Unterformular A über den UFOrahmen einzustellen.
Rahmen des UFO anklicken (UFO ist nun umrandet.
Eigenschaften...Daten Verknüpfen von
Rechts die 3 Punkte anklicken und die 1:n Beziehung eingeben. Wird von Access vorgeschlagen.
Den Code aus dem FAQ auskommentieren und testen.

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Hautstaender71
Im Profil kannst Du frei den Rang ändern


Verfasst am:
27. März 2009, 21:12
Rufname:

AW: (Unter)formular(e) synchronisieren - AW: (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

Hautstaender71 am 27. März 2009 um 19:53 hat folgendes geschrieben:
Du meinst also beide Unterformulare A und B auf diese Weise miteinander verknüpfen?
Werde das gleich einmal probieren.

Hab das gerade mal ausprobiert.

Folgende Meldung erscheint:
Zitat:
Aufbau einer Verknüpfung zwischen zwei ungebundenen Formularen nicht möglich.
Es geht also nur über das Hauptformular.

Eine Verknüpfung von Unterformular A zum Hauptformular klappt zwar technisch, ist von mir aber nicht gewünscht, da der Index im Hauptformular dann als Filter für das Unterformular A wirkt. Dieser Index soll aber nicht filtern, sondern nur synchronisieren.
Willi Wipp
Moderator


Verfasst am:
28. März 2009, 03:14
Rufname:
Wohnort: Raum Wiesbaden

Re: (Unter)formular(e) synchronisieren - Re: (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

Hi Hautstaender71,

den DS kannst Du via VBA markieren mit DoCmd.RunCommand acCmdSelectRecord (Fokus setzen!).
wenn ich das problem mit den neun Ds richtig verstanden habe,
dann duerfte das vorherige Setzen des Standardwertes (DefaultValue) weiter helfen.
BTW der Code aus dem Link sollte sich so vereinfachen lassen
Code:
    Forms!MeinFormular2.Recordset.FindFirst "Id = " & Nz(Me!Id, 0)

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Hautstaender71
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. März 2009, 14:48
Rufname:


Re: (Unter)formular(e) synchronisieren - Re: (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

Hallo,

vielen Dank für die Antwort.
Willi Wipp - 28. März 2009, 02:14 hat folgendes geschrieben:
den DS kannst Du via VBA markieren mit DoCmd.RunCommand acCmdSelectRecord (Fokus setzen!).
Die Markierung funktioniert. Jedoch markiert er beim Navigieren jetzt jede Zeile vollständig, obwohl ich das oft gar nicht möchte.
Kann man irgendwie abfragen, ob die Zeile von mir vorher vollständig markiert wurde, bevor die Synchronisation mit der unten erwähnten Programmzeile erfolgt?

Willi Wipp - 28. März 2009, 02:14 hat folgendes geschrieben:
BTW der Code aus dem Link sollte sich so vereinfachen lassen
Code:
    Forms!MeinFormular2.Recordset.FindFirst "Id = " & Nz(Me!Id, 0)
Mit diese Zeile lässt sich folgender Code tatsächlich ersetzen:
Code:
        Set rs = Forms!AFormular.RecordsetClone
        rs.FindFirst "dIdx = " & Nz(Me!dIdx, 0)
        If Not rs.NoMatch Then
            Forms!AFormular.Bookmark = rs.Bookmark
        End If
        Set rs = Nothing
Mein Problem bleibt aber dennoch bestehen, wenn doch ein wenig verändert.
Springe ich ich jetzt in die neue Datensatzzeile, wird der Index (dIdx) meines Unterformular A jetzt mit dem ersten Datensatz des Hauptfomulars synchronisiert.

Das hat zur Folge, dass Datensätze im Unterformular B angezeigt werden, obwohl der noch nicht angelegte Datensatz im Unterformular A gar keinen gültigen Index (Wert NULL) hat. Unterformular B muss also leer sein, stattdessen lassen sich dort Einträge mit dIdx=1 bewundern.
Willi Wipp
Moderator


Verfasst am:
28. März 2009, 18:21
Rufname:
Wohnort: Raum Wiesbaden

Re: (Unter)formular(e) synchronisieren (II) - Re: (Unter)formular(e) synchronisieren (II)

Nach oben
       Version: Office XP (2002)

Hi Hautstaender71,

beim 1. Punkt ist mir nicht klar wo jetzt das Problem ist, bzw. wo Du den Code genau einsetzt?
Das 2. Problem kannst Du eventuell auch so loesen:
- Erstelle im ungebundenen HFo ein Textfeld tbxIdUFo1 mit dem Steuerelementinhalt (ControlSource)
Code:
=Wenn(IsError([UFo1]![DeineID]);Null;[UFo1]![DeineID])
--- bzw. einfach
=[UFo1]![DeineID]
- Damit verknuepfts Du dann das UFo2!
Lass Dich nicht von dem Assistenten verwirren! Einfach ohne machen Smile

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 28. März 2009, 19:06, insgesamt einmal bearbeitet
Hautstaender71
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. März 2009, 18:34
Rufname:

AW: (Unter)formular(e) synchronisieren - AW: (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

Hallo,

zu Punkt 1, folgendes steht im Form_Current() Ereignis in meinem Unterformular A:
Code:
        Forms!AFormular.Recordset.FindFirst "dIdx = " & Nz(Me!dIdx, 0)
        DoCmd.RunCommand acCmdSelectRecord
Hinweis: AFormular ist der Name des Hauptformulars

Durch den kurzen Sprung ins Hauptformular verliert er die Zeilenmarkierung im Unterformular. Durch die zweite Zeile kommt sie aber wieder und zwar immer (auch wenn ich es gar nicht möchte)
Benötige jetzt eine Zeile, die vor der Findfirst-Zeile prüft, ob die Zeile komplett markiert war.

Den zweiten Vorschlag werde ich noch prüfen!
Willi Wipp
Moderator


Verfasst am:
28. März 2009, 19:07
Rufname:
Wohnort: Raum Wiesbaden

Re: (Unter)formular(e) synchronisieren (III) - Re: (Unter)formular(e) synchronisieren (III)

Nach oben
       Version: Office XP (2002)

Hi Hautstaender71,

ein saubere methode ist mir jetzt nicht eingefallen, aber eventuell reicht das Workaround!
Code:
Option Compare Database
Option Explicit
Private mblnMarkRecord  As Boolean

Private Sub UFo1_Enter()
    If mblnMarkRecord Then DoCmd.RunCommand acCmdSelectRecord
End Sub

Private Sub UFo1_Exit(Cancel As Integer)
    On Error Resume Next
    Debug.Print Me!UFo1.Form.ActiveControl.Name
    Select Case Err.Number
      Case 0:    mblnMarkRecord = False
      Case 2474: mblnMarkRecord = True
      Case Else
        MsgBox "Fehler " & Err.Number & ": " & Err.Description
    End Select
    On Error GoTo 0
End Sub
(Ohne Gewehr)
_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Hautstaender71
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. März 2009, 19:14
Rufname:


AW: (Unter)formular(e) synchronisieren - AW: (Unter)formular(e) synchronisieren

Nach oben
       Version: Office XP (2002)

Hautstaender71 am 28. März 2009 um 23:37 hat folgendes geschrieben:
Willi Wipp - 28. März 2009, 17:21 hat folgendes geschrieben:
- Erstelle im ungebundenen HFo ein Textfeld tbxIdUFo1 mit dem Steuerelementinhalt (ControlSource)
Code:
=Wenn(IsError([UFo1]![DeineID]);Null;[UFo1]![DeineID])
--- bzw. einfach
=[UFo1]![DeineID]
- Damit verknuepfts Du dann das UFo2!
Lass Dich nicht von dem Assistenten verwirren! Einfach ohne machen Smile

Vielen herzlichen Dank, das funktioniert.
Somit hat sich dann auch wohl das andere Problem gelöst, da es ja über die andere Synchronisation entstanden ist.
Genaues werde ich Montag mitteilen können, da ich momentan nur einen Test bei einem Bekannten durchgeführt habe.

Noch einmal vielen herzlichen Dank,

das war genau die Verknüpfung, die ich suchte. Problemlösung ohne Quellcode, hervorragend!

P.S.: Damit wurde auch gleich das Problem mit der Markierung erschlagen! Very Happy
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Problem beim Bericht oeffnen, wenn Parameter von Formular 11 Gast1 993 21. Jul 2005, 15:28
Nindigo Problem beim Bericht oeffnen, wenn Parameter von Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage in Formular einbinden? 1 Percobodio 2045 29. Apr 2005, 11:29
lothi Abfrage in Formular einbinden?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrageergebnis als neues Formular anzeigen 2 mila 3034 12. Apr 2005, 12:38
mila Abfrageergebnis als neues Formular anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfragen im Formular aufrufen, automatisch bestätigen 3 Calvin22 1606 12. Apr 2005, 12:12
Willi Wipp Abfragen im Formular aufrufen, automatisch bestätigen
Keine neuen Beiträge Access Tabellen & Abfragen: Anzahl der Datensätze zählen (im Formular oder Bericht) ? 3 anna-bolika 3756 31. März 2005, 12:50
Dalmatinchen Anzahl der Datensätze zählen (im Formular oder Bericht) ?
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Formular Daten in einer Tabelle speichern? 1 Gast 1017 24. März 2005, 16:24
Willi Wipp Formular Daten in einer Tabelle speichern?
Keine neuen Beiträge Access Tabellen & Abfragen: mehrer abfragen ein formular 1 romu 719 10. Jan 2005, 15:54
lothi mehrer abfragen ein formular
Keine neuen Beiträge Access Tabellen & Abfragen: kreuzabfrage ausführen nach vorgeschaltetem formular mit kom 4 Gast 887 21. Dez 2004, 15:17
Gast kreuzabfrage ausführen nach vorgeschaltetem formular mit kom
Keine neuen Beiträge Access Tabellen & Abfragen: Formeln vom Formular, werden in der Abfrage nicht angezeigt 4 maddes 895 23. Nov 2004, 12:38
Skogafoss Formeln vom Formular, werden in der Abfrage nicht angezeigt
Keine neuen Beiträge Access Tabellen & Abfragen: Zeile der Dateneingabe (*) in einem Formular verschieben 2 Albertus 790 08. Okt 2004, 09:17
Albertus Zeile der Dateneingabe (*) in einem Formular verschieben
Keine neuen Beiträge Access Tabellen & Abfragen: Suchfunktion mit mehreren Kriterien aus Formular 5 Danny G. 2218 09. Sep 2004, 11:08
Danny G. Suchfunktion mit mehreren Kriterien aus Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle, Formular, Abfrage...und nun ? 3 Gags 790 29. Aug 2004, 22:05
lothi Tabelle, Formular, Abfrage...und nun ?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum