Hallo VBA Spezialisten,
ich bin hier ganz neu und brauche mal Eure Unterstützung, da ich schon einige Tage an dem folgenden Problem verzweifle.
Ich habe ein Endlosformular welches durch eine Abfrage mit Werten aus Tabelle A gefüllt wird. In Tabelle A hat jeder Datensatz eine eindeutige ID. Im Endlosformular gibt es aber auch ein ungebundenes Textfeld in das Werte aus Tabelle B eingefügt werden sollen. Verbunden sind die Tabellen durch die ID, nur das in Tabelle B die ID mehrmals auftaucht. Der Datensatz mit der ID Nr.1 komme in Tabelle A also einmal vor, in Tabelle B X-mal.
Die Erstellung des Endlosformulars mit den Werten der Tabelle A über die Abfrage ist einfach, aber wie bekomme ich jetzt in diese Datensätze die X Werte der Tabelle B?
Habt ihr da eine Idee?
Hallo,
erstelle aus beiden Tabellen eine Abfrage, und verwende diese als Datensatzherkunft. Auf das ungebundene Feld kannst du dann verzichten.
Andreas
Hallo Andreas,
vielen Dank für diese superschnelle Antwort.
Aber ich verstehe das mit den 2 Abfragen nicht. Vielleicht sehe ich ja den Wald vor lauter Bäumen nicht. Sorry.
Das Endlosformular wird mit der 1. Abfrage gefüllt. Ein Unterformular ist im Endlosformular nicht erlaubt. Was mach ich jetzt mit der 2. Abfrage und wie stelle ich das Ergebnis der 2. Abfrage im Endlosformular dar?
Stefan
Nachtrag: Aus beiden Tabellen eine Abfrage erstellen: Wenn ich so abfrage erscheint als Ergebnis jeder Datensatz der Tabelle 1 so oft wie es dazugehörige Einträge in der Tabelle 2 gibt. Das ist aber nicht das was ich benötige. Ich brauche jeden Datensatz der Tabelle 1 einmal und die dazugehörigen Datensätze der Tabelle 2 so oft wie jeweils Einträge da sind.
Hallo,
irgendwie verstehe ich das Problem gerade nicht.
Kannst Du mal eine Bild des Beziehungsafensters zeigen und das dann mal genauer an Hand des Bildes erläutern ?
Übrigens, Andreas hat nicht von 2 Abfragen gesprochen, sondern von einer Abfrage mit den 2 Tabellen.
Hier mal ein Versuch das Ganze grafisch darzustellen. Ich hoffe mein Problem wird dadurch etwas klarer.
Montag bin ich wieder in der Firma. Dann kann ich auch ein Bild des Beziehungsfensters anhängen.
Hallo,
die grafische Darstellung ist Dir nicht gelungen, ich verstehe es nicht. Ein Bild des Beziehungsfensters in dem man die Tabellen, deren Felder und die Beziehungen sieht wäre einfacher gewesen und hätte mehr ausgesagt.
Also müssen wir bis Montag warten, oder Du beschreibst mal die beiden Tabellen mit den Feldern und was in der DB erfasst wird.
Hi,
ZitatHier mal ein Versuch das Ganze grafisch darzustellen.
eine detaillierte Beschreibung zur grafischen Darstellung hätte evtl. helfen können, diese zu verstehen.
Hallo,
ich habe jetzt noch mal versucht alles etwas klarer zu machen und ein PDF mit ein paar Bildschirmcopies angehängt. Ich hoffe es war jetzt verständlicher und ihr könnt mir helfen.
Gruß aus dem bewölkten Hamburg
Hi,
du könntest die Funktion "SQLListe (http://dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen)" aus dem dbWiki einsetzen, um die B-Daten zum aktuellen Datensatz direkt in der Abfrage hinzuzuholen.
Hallo,
die Darstellung mit einem Endlosform und darin eingebetteten weiteren Ufo bei jedem Datensatz wird nicht gelingen, weil das einfach (Gruppierungen) nicht geht. Allenfalls kannst Du einen Bericht erzeugen, der nach der Projekte-ID gruppiert und dadurch "Blöcke" erzeugt, die aus einem Projekt und den dazugehörenden Zusätzen besteht. Das käme in etwa an die Darstellung heran.
Wenn Du das ungebundene Form Textfeld wie gezeigt per Code füllst,
ist und bleibt es nicht editierbar.
Es ist aber möglich, in den Fußbereich des Endlosforms ein Unterformular mit entspr. Verknüpfung einzubauen. Access meckert zwar ein wenig, aber das kann ignoriert und die geänderten Einstellungen( Endlosform--> Einzelform) zurückgenommen werden.
Hallo,
vielen Dank für Eure Vorschläge.
Das vom mir im PDF gezeigt Endlosformular wird schon so erzeugt wie angezeigt. Wenn die Daten im ungebundenen Textfeld nicht editierbar sind ist das zwar doof aber ich kann damit leben. Es fehlt jetzt eigentlich nur noch die Abfrage im VBA Code der ID des jeweiligen Datensatztes. Und genau daran scheitere ich. Ich habe auch im Endlosformular die jeweilige ID angezeigt (im PDF mit rotem Pfeil markiert) und versucht diese per ME!ID in den VBA Code zu bekommen, klappt aber nicht. Es ist immer nur die ID des ersten Datensatzes.
Wißt ihr wie man die ID des jeweiligen Datensatzes per VBA abfragt?
Hallo,
in einem Endlosform sind nur die Felder (Werte) des aktuell angezeigten DS (der, der den Fokus besitzt) per VBA zugreifbar .
Was ist aber das genaue Problem jetzt? Die Daten aus Tabelle B kannst Du doch jetzt schon anzeigen?
Folge meinem Rat und setze die dbWiki-Funktion ein, damit lässt sich das Problem mit der Anzeige lösen.
Wenn du dabei Hilfe brauchst, zeige bitte den Code der aktuellen Abfrage - aber bitte als Text und nicht als Screenshot!
Hallo Franz,
Dank für die Antwort.
Mein Problem ist das ich nur alle in Tabelle B enthaltenen Datensätze anzeigen kann. Ich möchte aber die die zum Datensdatz passenden und über die ID verbundenen anzeigen.
Gruß
Stefan
Hallo,
verwende die von MaggieMay vorgeschlagene Funktion und ruf die im Steuerelementinhalt des entspr. Form-Textfeldes auf mit Übergabe des ID-Feldes und des passenden SQL-String. (=SqlListe(....) )
oder
wie auch vorgeschlagen, Aufruf in der Abfrage in einer "berechneten Spalte":
Feld: tblBText: SqlListe(....)
oder
erstelle ein Endlosform mit Datenherkunft zu tblB und binde das, auch wie schon gesagt, im FormularFUSS ein. Das Meckern von Access kannst Du ignorieren und die Form-Eigenschaften wieder anpassen. Evtl. müssen die Eigenschaften "Verknüpfen von/nach" des UFO-Steuerelementes auch angepasst werden.
Diese Lösung zeigt die zugehörenden Daten aus tblB zum akt. angezeigten DS ( aus tblA) an. Wird auf einen anderen DS geklickt, aktualisiert sich das Ufo entspr.