Hallo
Ich bin dabei eine kleine Testdatenbank zu erstellen. Es gibt eine tblAdresse ein Formular frmAdresse und ein Unterformular sfrZuteilung. In frmAdresse kann ich mit < > durch die Adressen blättern. das sfrZuteilung hat die Datenquelle tblAdresse wie das frmAdresse und ist als Unterformular in TabellenAnsicht in frmAdresse eingefügt. Es gibt keine Verknüpfungskriterien zwischen diesen beiden Formularen. sfrZuteilung wird durch ein FormRecordSource Filter bestimmt. Es sollten alle Adressen angezeigt werden, die, die gleiche Nummer haben wie die aktuelle Adresse. Leider wird im sfrZuteilung nur immer die aktuelle Adresse angezeigt.
Der Code sieht wie folgt aus:
Me!sfrZuteilung.Form.RecordSource = "SELECT * FROM tblAdresse WHERE adress_Auswahl Like " & Me!txtAdress_Auswahl
Ich habe die Datenbank angehängt.
Gruss Daniel
Hallo,
ZitatEs gibt keine Verknüpfungskriterien zwischen diesen beiden Formularen.
das ist nicht zutreffend, schau dir mal die Eigenschaften des Unterformular-Steuerelements an.
Du hast recht, es wieder adress_ID als Verknüpfung drin. Ich habe diese schon mehrmals rausgenommen und auf keine gestellt. Und doch kommt sie immer wieder rein. Wieso?
Möglicherweise passiert das, sobald du etwas an den Einstellungen änderst, manchmal "denkt" Access etwas zu viel mit.
Um sicher zu gehen, könntest du beim Öffnen des Formulars die Steuerelement-Eigenschaften per VBA ändern/löschen.
Wie sieht den der Code aus um diese Verknüpfung zu löschen?
Me.ufocontrolname.LinkChildFields = ""
Me.ufocontrolname.LinkMasterFields = ""
Darauf kommt man, wenn man im Formularentwurf die Verknüpfungseigenschaften des Unterformular-Steuerelements im Register "Daten" anklickt und F1 drückt.
Ich habe nun festgestellt, dass es nicht nur an der Verknüpfung liegt, sondern auch an meinem Code Form.RecordSource
Me!sfrZuteilung.Form.RecordSource = "SELECT * FROM tblAdresse WHERE adress_Auswahl Like " & Me!txtAdress_Auswahl
Obwohl ich die Verknüpfung auf das Auswahl Feld mache, macht er mir eine Verknüpfung auf die ID. Ich weiss nicht ob es daran liegt, dass sowohl für das HFormular wie auch für das UFormular die gleiche Tabelle benützt wird.
Ich habe nun diesen Code rausgenommen und das ganze mit einer Verknüpfung beim Laden versucht. Wenn ich nur ein Feld angebe, funktioniert es einwandfrei, schlussendlich brauche ich aber für meine Datenbank mehrer Kriterien. Ich habe gelesen, die einzelnen Felder müssen durch ; getrennt werden. So habe ich den unten aufgeführten Code erstellt, doch da kommt immer eine Meldung:
Wenn sie die Eigenschaft Verknüpfen von und nach verwenden, müssen sie gleich viele Felder angeben. Dies habe ich ja gemacht. Was ist falsch an meinem Code?
Me.sfrZuteilung.LinkChildFields = "Adress_Auswahl; Adress_Hotel"
Me.sfrZuteilung.LinkMasterFields = "Adress_Auswahl; Adress_Hotel"
Gruss Daniel
Hallo Daniel,
versuche es mal mit Komma als Trennzeichen.
Es macht einen Unterschied, ob die Zuweisung per VBA ausgeführt wird oder die Einträge manuell im Eigenschaftsfenster vorgenommen werden.
Beim Komma habe ich die gleiche Fehlermeldung.
Kann mehr jemand sagen, wie ich mehrer Felder mit einem VBA Code verknüpfen kann?
Gruss Daniel
Fehlermeldung?! Welche wäre das denn?
Hallo,
Zum SQL-String:
Wenn Tabellenfeld "adress_Auswahl " den Datentyp TEXT besitzt:
Me!sfrZuteilung.Form.RecordSource = "SELECT * FROM tblAdresse WHERE adress_Auswahl Like '" & Me!txtAdress_Auswahl & "'"
oder besser bei genauem Vergleich:
Me!sfrZuteilung.Form.RecordSource = "SELECT * FROM tblAdresse WHERE adress_Auswahl= '" & Me!txtAdress_Auswahl & "'"
wenn "adress_Auswahl" den Datentyp Zahl (Long) besitzt:
Me!sfrZuteilung.Form.RecordSource = "SELECT * FROM tblAdresse WHERE adress_Auswahl = " & Me!txtAdress_Auswahl