Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Probleme mit Form.RecordSource eines Unterformulares

Begonnen von smily68, Oktober 30, 2014, 11:04:23

⏪ vorheriges - nächstes ⏩

smily68

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

MaggieMay

Hallo,
ZitatEs gibt keine Verknüpfungskriterien zwischen diesen beiden Formularen.
das ist nicht zutreffend, schau dir mal die Eigenschaften des Unterformular-Steuerelements an.
Freundliche Grüße
MaggieMay

smily68

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?

MaggieMay

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.
Freundliche Grüße
MaggieMay

smily68

Wie sieht den der Code aus um diese Verknüpfung zu löschen?

MaggieMay

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.
Freundliche Grüße
MaggieMay

smily68

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

MaggieMay

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.
Freundliche Grüße
MaggieMay

smily68

Beim Komma habe ich die gleiche Fehlermeldung.

Kann mehr jemand sagen, wie ich mehrer Felder mit einem VBA Code verknüpfen kann?

Gruss Daniel

MaggieMay

Freundliche Grüße
MaggieMay

DF6GL

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
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access