Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Anfügeabfrage bei 1:n Beziehung





Frage

Hallo, ich habe 2 Tabellen in einer 1:n - Beziehung. In einem Formular zeige ich den Inhalt der ersten Tabelle im Hauptformular an, den Inhalt der 2. Tabelle in einem Unterformular (endlos). Nun möchte ich den Datensatz kopieren... klappt net. Ich habe 2 Anfügeabfragen erstellt, für jede Tabelle eine. Der Datensatz der ersten Tabelle wird als neuer Datensatz eingefügt, der die Datensätze der 2. Tabelle aber immer bei dem alten Datensatz..... Klingt kompliziert, ich weiß, deswegen habe ich eine kleine Demo-DB erstellt (180KB), die ist [url=www.ultraklug.de/bd/test.mdb]hier[/url] danke

Antwort 1 von Koebi

Grüezi Locke

Beim Access-Guru kannst Du zum Thema eine Demo-DB herunterladen (SWCopy...zip.)

www.access-guru.de/

Damit soll es möglich sein, einen Datensatz in HF und UF zu duplizieren.
Ich habe es bisher selbst noch nicht probiert.

Vielleicht hilft es Dir weiter.

Gruss
Köbi

Antwort 2 von Locke

danke köbi, das würde mir helfen wenn ich die benutzerdefinierte Typen (DAO.Recordset) nachvollziehen könnte.
O.K. das funktioniert, aber leider kann ich das so nicht umsetzen :-(

Antwort 3 von 14071

Hi Locke,

habe deine Test.mdb mal angeschaut. Aber dein Problem ist für mich immer noch nicht klar. Sollen die Artikel von der gleichen Art sein und dem Kunden zugeordnet werden, brauchst du eine n:m Verknüpfung. Die Artikel werden in einer eigenen Tabelle angelegt. Die n:m-Tabelle nimmt dann die ID´s der Kunden und Artikel auf. Zudem kannst du darin speichern, wieviel Stück der Artikel dieser Kunde bestellt hat, etc.

Falls dies nicht der Ansatz ist, den du suchst, poste nochmal.

Gruß
Jürgen

Antwort 4 von Locke

@14071
Wenn Du z.B. den ersten Datensatz betrachtest, siehst Du links den Name und rechts 2 Artikel.
Ich möchte das genau so als neuen Datensatz (neue id) ablegen. Den gleichen Namen und dazu die beiden Artikel.
Wenn ich Datensatz 2 kopiere, wären das z.B. der Name und 4 Artikel als neuer Datensatz.

Es wird ja ein neuer Datensatz mit Name angelegt, aber die Artikel werden im ursprünglichen Datensatz kopiert. Im ersten z.B. habe ich dann da 4 Artikel stehen.

Antwort 5 von 14071

Hi Locke,
ich glaub ich habe das richtige für dich gefunden. Lad dir unter www.access-guru.de die freeware-mdb SWCopySub97. Damit solltest du weiterkommen.

Gruß
Jürgen

Antwort 6 von Locke

;-)
Danke, das nabe ich schon als Tipp von Köbi.
Stimmt genau so soll das funktionieren, nur habe ich ein Problem das auf die "echte" Datenbank zu übertragen.

Im Code wird eine Variable so deklariert:
Dim RS_old As DAO.Recordset
So lange ich nicht rausfinde wie und wo dieser benutzerdefinierte Typ gemacht ist kann ich das leider nicht nutzen.
Hast Du eine Idee wie der gemacht wird?
Falls die DB beim Access-Guru nicht gesaugt hast, hier der Direktlink.
Danke

Antwort 7 von 14071

oops - Köbi´s Tipp habe ich glatt überlesen - sorry in die Schweiz.

Ganz so fit bin ich leider noch nicht in VBA. Das RS ist wohl ein Recordset. Soviel ich weiss, werden die Daten damit temporär in eben diesem RS vorgehalten.

Werde mir morgen die mdb von Access-Guru mal ansehen, vielleicht kann ich dir dann weiterhelfen.

Gruß
Jürgen

Antwort 8 von Locke

Ja danke.
"RS_old" kann ich auch "Hund", "Katze" oder "Maus" nennen, das ist ja nur eine Variable.
Mir geht es um "DAO.Recordset"
Da wird irgendwo dieser benutzerdefinierte Datentyp erstellt.

Antwort 9 von Locke

So, ich habe alles aus der "echten" Datenbank in die von Access-Guru importiert, den Code angepasst und allles was vom Access-Guru ist gelöscht. Datenbank umbenannt und es geht.
Nur würde mich interessieren was es mit dem "DAO-Recordset" auf sich hat. Dieser Typ funktioniert in einer neuen DB nicht.

Antwort 10 von Koebi

Grüezi

DAO.Recordset verweist explizit auf die DAO Object Library und dient zur Unterscheidung auf einen Vereis auf die ADO-Bibliothek.

Nimm doch einfach einmal das DAO. weg, dann hast Du wie bisher RS As Recordset.
Ich habe das in der Demo-DB gemacht, und es funktioniert weiterhin. Unter Access97 auf jeden Fall.

Ist es das, was Probleme macht, oder klemmt es sonst noch irgendwo?

Im übrigen schau zu diesem Thema einmal in der Access-FAQ von donkarl, unter Punkt 7.11

www.donkarl/com

oder einen Diskussionsbeitrag in der News-Group:

http://groups.google.ch/groups?hl=de&lr=&ie=UTF-8&threadm=97eo62%24p258q%243%40ID-28695.news.dfncis.de&rnum=3&prev=/groups%3Fq%3DDAO%2Bgroup:de.comp.datenbanken.ms-access%26hl%3Dde%26lr%3D%26ie%3DUTF-8%26selm%3D97eo62%2524p258q%25243%2540ID-28695.news.dfnc


Gruss
Köbi


Antwort 11 von Locke

Hi Köbi, das stimmt schon was Du sagst, man kann das "DAO" weglassen und nur "Recordset" daraus machen. Das geht auch in der DB vom Access-Guru.
Nur, lege mal eine leere Datenbank an und importiere die beiden Tabellen und Formulare, nachdem Du das "DAO" weggelassen hast. Dann geht das nicht mehr, leider.
Die Frage ist nur: Warum?

Antwort 12 von Koebi

Hallo Locke

Das habe ich jetzt gerade gemacht. Klappt aber weiterhin wunderbar.

Fehlt es vielleicht an den Verweisen? Bei mir sind folgende gesetzt:

Visual Basic For Applications
Microsoft Access 8.0 Objects Library
Microsoft DAO 3.5 Objects Library

Gruss
Köbi

Antwort 13 von Locke

hmmmm...
wo finde ich das?

Antwort 14 von Koebi

Hallo Locke

In der Datenbankansicht auf Modul gehen und irgendein Modul öffnen. Leider hat es aber in der Demo-DB keins.:-)
Also Modul / Neu und dann Menüpunkt Extras / Verweise anklicken. Nun werden die verfügbaren Referenzen angezeigt. Die drei, die ich erwähnt habe, sollten angehackt sein.

Je nach Access-Version musst Du evtl. die DAO 3.6 und nicht die DAO 3.5 nehmen. Halt mal ausprobieren.

Gruss
Köbi

Antwort 15 von struppi

Hallo,
Ob das klappt hängt auch von der Reihenfolge der Verweise ab. Wenn ADO zuerst kommt wird bei (NUR) Recordset ADO.Recordset benutzt. Wenn DAO zuerst kommt dann wird bei Codes in denen nur Recordset deklariert wurde DAO.Recordset benutzt.
Die Verweise lassen sich in beliebiger Reihenfolge anordnen.
gruß struppi

Antwort 16 von Locke

Ja, danke an alle.
Microsoft DAO 3.6 Objects Library
war nicht angehakt.

Mannomann was ist dem ganzen anderen Kram, wann weiß ich was ich da anhaken muß?. Da sind ja mindestens 100 Einträge die man wählen kann ?!