Ich werde versuchen das ganze nochmal zu erklären. Muss dir recht geben, ist nicht leicht für jemanden zu verstehen, der nicht direkt mit dem Problem konfrontiert ist.
Also...
Grundlegendes: Es soll möglich sein, Firmen und Abteilungen per m:n Beziehung zu verknüpfen. D.h. es sollen beliebig viele Firmen zu einer Abteilung, und beliebig viele Abteilungen zu einer Firma zugeordnet werden können.
Dafür ist im Normalfall eine Verknüpfungstabelle notwendig.
Allerdings vergessen wir mal dieses komplexe Element. Sehen wir das ganze als eine 1:n Beziehung. D.h. es gibt ein Stammformular, in diesem Form können Abteilungen erfasst werden. Diese Abteilungen werden in einer ganz simplen Tabelle Abteilungen gespeichert ... nichts besonderes also.
Jetzt gibt es eine Tabelle, eben diese Verknüpfungstabelle. Die hat 2 Felder. -> Firmen_Nr und Abteilungs_Nr
Wenn jetzt die Abteilung einer Firma unterstellt ist, wird in dieser Tabelle ein Datensatz eingefügt.
Vorgang:
--------
Z.b. ich legen die Abteilung 4 an, in der Tabelle Abteilungen. 4 ist in dem Fall der Autowert, also Primärschlüssel. Jetzt gibt es eine zweite normale Tabelle -> Firmen, dort stehen z.B. schon 20 Firmen drinnen mit dem Primärschlüssel 1 - 20.
Jetzt will ich sagen, dass die Abteilung 4 folgenden Firmen unterstellt ist .... 1,5,8,11 und 15 z.B.
Die Verknüpfungstabelle sieht dann folgendermassen aus ...
Abteilungs_Nr Firmen_Nr
4 1
4 5
4 8
4 11
4 15
Soweit so gut, das is alles kein Problem.
Zurück zum eigentlichen Problem ....
Also, wir befinden uns immer noch im Stammformular Abteilungen, welches die normale Tabelle Abteilungen als Basis hat. In diesem Form gibt es jetzt 2 Unterformulare. Eines, das die Firmen aus der Tabelle Firmen anzeigt (in einem Listenfeld), allerdings die Verknüpfungstabelle als Basis hat, denn die Auswahl aus dem Listenfeld soll ja in die Tabelle geschrieben werden. Wenn ich jetzt z.B. eine Firma hinzufügen möchte, klicke ich in dem Listenfeld im UForm1 auf eine Firma. Der Datensatz, genauer gesagt nur die Firmen_Nr, wird dann gesucht und in das Feld der Verknüpfungstabelle (Firmen_Nr) eingefügt. Die Abteilungsnummer wird immer mit der eingetragen bei der ich mich gerade im Hauptformular befinde. Soweit so gut, alles kein Problem. Jetzt sind wir mal dort, wo es möglich ist, per Klick auf das Listenfeld im UForm1 eine Firma in die Verknüfpungstabelle mit der aktuellen Abteilung einzufügen.
Jetzt kommt das UForm2 ins Spiel. Dort werden alle Firmen angezeigt, denen die aktuelle Abteilung unterstellt ist. D.h. dieses UForm 2 hat als Basis die Verknüpfungstabelle mit den 2 Felder, eben eines für die Abteilungs_Nr und eines für die Firmen_Nr. Dort gibt es wieder ein Listenfeld, welches alle Firmen anzeigt die zu der aktuellen Abteilung gehören.
Wenn ich jetzt im UForm1 eine Firma anwähle und sie eben zu der Verknüpfungstabelle hinzufüge, dann passiert folgendes ...
Private Sub Befehl12_Click()
DoCmd.RunCommand acCmdSaveRecord 'Zuordnung speichern
Die Zuweisung wird also in der Verknüpfungstabelle gespeichert, somit sind die Datensätze in der Tabelle abgespeichert.
DoCmd.GoToRecord , , acNewRec 'Zu neuem DS springen
Er spring zu einem neuen DS, falls noch mehr Firmen eingefügt werden wollen.
Forms![Abteilungen]![Abteilungen_Firmen_zugeordnet_UForm].Form![Firmen_zugeordnet].Requery 'Liste mit zugewiesenen Firmen wird akt.
End Sub
DAS ist der interessante Teil ... hier wird die Liste im UForm2, eben jene in der alle Firmen angezeigt werden, der die Abteilung unterstellt ist, aktualisiert.
Das funktioniert auch alles soweit.
Jetzt kommt das eigentliche Problem. Füge ich jetzt eine Firma hinzu, wird sie richtig in der Verknüpfungstabelle abgespeichert, sie wird auch richtig im Listenfeld im UForm2 angezeigt. Will ich diese Firma jetzt aber aus der Verknüpfungstabelle wieder löschen, müsste ich im UForm2 auf das neu eingefügte Element klicken (sodass zu diesem DS gesprungen wird) und den aktuellen DS dann einfach normal löschen. Der HAKEN an der Sache ist aber, dass ich nicht zu dem DS springen kann ... er findet diesen DS einfach nicht. Obwohl er in dem Listenfeld richtig erscheint, obwohl der DS in der Tabelle richtig abgespeichert ist.
Das einzige, das hilft ist ein schliessen und öffnen des UForm2, dann könnte ich den DS löschen.
Ich hoffe, dass das jetzt etwas klarer war.
Bin dir für deine Hilfe wirklich sehr dankbar!!
mfg
Andy