Supportnet / Forum / Datenbanken
Zugriff auf zwei Tabellen aus Formular
Frage
Hallo Experten,
ich bin gerade dabei eine kleine Datenbank zu erstellen und komme jetzt irgendwie nicht mehr weiter.
Folgendes Problem:
Ich habe eine Excel-Tabelle mit knapp 7000 Zeilen.
Es gibt in der Excel-Tabelle eine Spalte (Artikelnr) in der "eigentlich" Artikelnummern aus 5- 7 Stelligen Nummern bestehen. Es gibt jedoch darunter auch einige Artikelnummern, die vor der 7 stelligen Nummer noch den Text "A-X" drinstehen haben. Also z.b. A-X1234567. So nun habe ich ein kleines Makro erstelt, damit es mir die Zeilen mit A-X- Artikeln in eine andere Tabelle ausschneidet, damit diese getrennt von den normalen Artikeln sind. Dabei entferne ich dieses A-X vor der Artikelnr damit es im Access zu keinen Import fehlern kommt. Das A-X soll später im bericht wieder dazugehängt werden, bevor der Bericht gedruckt wird.
Nun importiere ich diese beiden Tabellen in Access. Klappt wunderbar. Ich habe ein Formular erstellt, mit dem ich nach bestimmten Sachen wie Artikelnr suchen kann. Damit nicht nur in einer Tabelle gesucht wird, (bei datenherkunft kann ja nur eine tabelle angegeben werden) habe ich eine Abfrage erstellt die mir die beiden Tabellen als gesamttabelle praktisch untereinander anzeigt. Ich kann auch wunderbar über mein Formular suchen und finde auch Artikel von beiden Tabellen. Nun habe ich aber im Formular einen Button, über den ich in meinen zuvor erstellten Bericht gelage, welches mit den aktuell angezeigten Datensätzen aus dem Formular gefüllt ist. Die übergabe der Formular-Daten in den Bericht läuft über die ID, welche in beiden Tabellen einfach die Fortlaufende Nummer ist (=primärschlüssel). Da das formular aber auf meine Abfrage zugreift und dort die ID der ersten tabelle von 1 bis 6377 geht und dann wieder von 1 bis 566 (ID von tabelle 2) funktioniert die übergabe nicht mehr richtig. Ist ja logisch weil es die IDs 1 bis 566 doppelt gibt. D.h. wenn ich z.b . gerade im formular bin bei datensatz 6500 und auf bericht-button klicke, ist mein bericht falsch ausgefüllt, weil die ID ja nicht stimmt.
Sprich, der Bericht ist mit daten aus der ersten Tabelle gefüllt obwohl ab datensatz 6377 schon daten aus der Tabelle2 drin stehen sollten.
Wie kann ich also mit meinem Formular auf beide Tabellen zugreifen damit auch die übergabe vom furmular zum Bericht richtig funktioniert. Wichtig ist halt, das tabelle1 und tabelle 2 irgendwie getrennt sind, weil bei der 2 tabelle ja diese A-X artikel sind wo ich wieder diesen Text "A-X" im Bericht noch vor dem Drucken anhängen muss.
Ich hoffe ich habe es einigermaßen verständlich erklärt und hoffe ihr könnt mir helfen.
Vielen Dank im Voraus!
Antwort 1 von RalfH
Hallo mx-6,
Mach daraus eine Tabellenerstellungsabfrage, und greif dann auf die erstellte Tabelle zu.
Gruß Ralf
Zitat:
habe ich eine Abfrage erstellt die mir die beiden Tabellen als gesamttabelle praktisch untereinander anzeigt.
habe ich eine Abfrage erstellt die mir die beiden Tabellen als gesamttabelle praktisch untereinander anzeigt.
Mach daraus eine Tabellenerstellungsabfrage, und greif dann auf die erstellte Tabelle zu.
Gruß Ralf
Antwort 2 von Teddy7
Besser: Füge in der Abfrage eine Spalte hinzu, aus der die Tabelle zu ersehen ist.
Dazu mußt Du wahrscheinlich so vorgehen, daß Du eine Abfrage auch die erste Tabelle machst und eine eigene Spalte mit konstant "A" hinzufügst.
Dann eine zweite Abfrage auf die zweite Tabelle mit zusätzlich "B".
Dann - wie bisher - die beiden Abfragen in einer dritten Abfrage zu einem Datenblock zusammenfassen.
Jetzt kannst Du nach laufender Nummer und Kennung selektieren.
///////////////////
Du solltest aber mal darüber nachdenken, ob es nicht sinnvoll ist, die beiden Tabellen zu einer Tabelle zusammenzuführen - ggf. unter hinzufügen einer Kennung, um die Daten noch auseinanderhalten zu können. Dabei kannst Du auch eine durchgehende laufende Nummer erzeugen.
//////////////////////
Gruß
Teddy
Dazu mußt Du wahrscheinlich so vorgehen, daß Du eine Abfrage auch die erste Tabelle machst und eine eigene Spalte mit konstant "A" hinzufügst.
Dann eine zweite Abfrage auf die zweite Tabelle mit zusätzlich "B".
Dann - wie bisher - die beiden Abfragen in einer dritten Abfrage zu einem Datenblock zusammenfassen.
Jetzt kannst Du nach laufender Nummer und Kennung selektieren.
///////////////////
Du solltest aber mal darüber nachdenken, ob es nicht sinnvoll ist, die beiden Tabellen zu einer Tabelle zusammenzuführen - ggf. unter hinzufügen einer Kennung, um die Daten noch auseinanderhalten zu können. Dabei kannst Du auch eine durchgehende laufende Nummer erzeugen.
//////////////////////
Gruß
Teddy
Antwort 3 von mx-6
Hallo,
vielen Dank erstmal für eure Antworten.
@ Ralf ich finde bei mir irgendwie diese Tabellenerstellungsabfrage nicht. Ich hab diese Option schon mal früher gesehen, kanns jetzt aber nicht finden. mache ich was falsch???
@ Teddy
ich habe jetzt in meinem Excel Dokument alle Artikel, also die normalen und die A-X artikel untereinander drin. Habe dann eine neue Spaltehinzugefügt und von Zeile 1 bis 6377 den Buchstaben A eingemacht (bis dahin die normalen Artikelnr). dann ab zeile 6378 bis zur letzen zeile habe ich in der neuen Spalte den Buchstaben B reingemacht (alles A-X Artikel). So nun hab ich noch dieses A-X vor den Artikelnummern bei den "B-Artikeln) rausgemacht (suchen/ersetzen) damt ich die Tabelle in Access importieren kann. Dann hab ich die Tabelle importiert. Mein formular funktioniert wunderbar. Auch wenn ich jetzt nach einem B-Artikel (A-X Artikel) suche und dann auf meinen Bericht-Button klicke, werden die richtigen Datensätze aus dem Formular in den Bericht übertragen.
Nun ist ja aber noch das Problem, dass ich bei den B-Artikeln (A-X -Artikel) dieses "A-X" vor die Artikelnummer reinmachen muss. Und da komm ich jetzt wieder nicht weiter....
Ich kann im Berichtsentwurf bei dem Feld Artikelnr das Format so einstellen, dass er mir vor der Artikelnr diesn Text "A-X" anhängt, aber das wäre dann für jede Artikelnr und ich brauche es ja nur bei den B-Artikeln!?!?!?
Allgemeine Frage: habe ich das so richtig verstanden? Ich meine das mit dem erstellen einer neuen Spalte in Excel für diese Kennung A/B ? Oder macht man sowas eher im Access irgendwie???
Ist jetzt nicht besonders wichtig, weil ich dazu auch ein kleines makro erstellen könnte, welches mir die Excel Tabelle so richtet, aber mich interessierts wie es andere machen :) oder wie man es "richtig" macht.
Wäre für jeden Tipp sehr dankbar!!!!!!
vielen vielen Dank!
vielen Dank erstmal für eure Antworten.
@ Ralf ich finde bei mir irgendwie diese Tabellenerstellungsabfrage nicht. Ich hab diese Option schon mal früher gesehen, kanns jetzt aber nicht finden. mache ich was falsch???
@ Teddy
ich habe jetzt in meinem Excel Dokument alle Artikel, also die normalen und die A-X artikel untereinander drin. Habe dann eine neue Spaltehinzugefügt und von Zeile 1 bis 6377 den Buchstaben A eingemacht (bis dahin die normalen Artikelnr). dann ab zeile 6378 bis zur letzen zeile habe ich in der neuen Spalte den Buchstaben B reingemacht (alles A-X Artikel). So nun hab ich noch dieses A-X vor den Artikelnummern bei den "B-Artikeln) rausgemacht (suchen/ersetzen) damt ich die Tabelle in Access importieren kann. Dann hab ich die Tabelle importiert. Mein formular funktioniert wunderbar. Auch wenn ich jetzt nach einem B-Artikel (A-X Artikel) suche und dann auf meinen Bericht-Button klicke, werden die richtigen Datensätze aus dem Formular in den Bericht übertragen.
Nun ist ja aber noch das Problem, dass ich bei den B-Artikeln (A-X -Artikel) dieses "A-X" vor die Artikelnummer reinmachen muss. Und da komm ich jetzt wieder nicht weiter....
Ich kann im Berichtsentwurf bei dem Feld Artikelnr das Format so einstellen, dass er mir vor der Artikelnr diesn Text "A-X" anhängt, aber das wäre dann für jede Artikelnr und ich brauche es ja nur bei den B-Artikeln!?!?!?
Allgemeine Frage: habe ich das so richtig verstanden? Ich meine das mit dem erstellen einer neuen Spalte in Excel für diese Kennung A/B ? Oder macht man sowas eher im Access irgendwie???
Ist jetzt nicht besonders wichtig, weil ich dazu auch ein kleines makro erstellen könnte, welches mir die Excel Tabelle so richtet, aber mich interessierts wie es andere machen :) oder wie man es "richtig" macht.
Wäre für jeden Tipp sehr dankbar!!!!!!
vielen vielen Dank!
Antwort 4 von Teddy7
Ich sprach von einer zusätzlichen Spalte in einer Abfrage.
So kannst Du auch Dein Problem mit der ArtikelNr lösen. Einfach eine zusätzliche Spalte in die Abfrage einfügen:
XArtNr: wenn(nz(Kennung;"") <> "";Kennung & ArtikelNr;ArtikelNr)
Wirkung: Es gibt in der Datenquelle ein zusätzliches Feld namens XArtNr in dem A4711 steht, wenn das Feld Kennung A ist und 4712, wenn die Kennung leer ist (dabei wird mit der Funktion nz der Fall abgefangen, daß das Feld Kennung gar nicht gefüllt - also NULL - ist)
Gruß
Teddy
So kannst Du auch Dein Problem mit der ArtikelNr lösen. Einfach eine zusätzliche Spalte in die Abfrage einfügen:
XArtNr: wenn(nz(Kennung;"") <> "";Kennung & ArtikelNr;ArtikelNr)
Wirkung: Es gibt in der Datenquelle ein zusätzliches Feld namens XArtNr in dem A4711 steht, wenn das Feld Kennung A ist und 4712, wenn die Kennung leer ist (dabei wird mit der Funktion nz der Fall abgefangen, daß das Feld Kennung gar nicht gefüllt - also NULL - ist)
Gruß
Teddy
Antwort 5 von mx-6
Hallo Teddy7,
vielen viiiieeeeelen Dank!
Hat genauso hingehauen wie du gesagt hast.
Diese Seite merk ich mir :)
Danke und schönen Tag noch!
vielen viiiieeeeelen Dank!
Hat genauso hingehauen wie du gesagt hast.
Diese Seite merk ich mir :)
Danke und schönen Tag noch!

