Neuigkeiten:

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

Mobiles Hauptmenü

Aus einem Datensatz mehrere (gleiche Kopien) erstellen

Begonnen von cervisia, April 19, 2012, 13:28:08

⏪ vorheriges - nächstes ⏩

cervisia

Hallo, liebe Forumsgemeinde!

Ich habe folgendes Problem:

Wir müssen für unsere Kunden für manche Produkte sogenannte Prüfzeugnisse erstellen. Bis jetzt wurden diese Zeugnisse in Excel erstellt und als einzelne Dateien abgespeichert. Jetzt möchte ich das ganze über Access verwalten. Aus unserer Auftragsverwaltung kann ich die Aufträge (Auftragsnummer, Artikel und Stückzahl) exportieren.
Das Importieren dieser Informationen in Access stellt auch kein Problem dar. Ich bin allerdings auf der Suche nach einer Möglichkeit um aus einer Zeile einer Tabelle mit folgenden Informationen

3 Stk.   Artikel Nr. 1234     Artikeltext zu 1234

eine Tabelle mit folgendem Inhalt

Artikel Nr. 1234     Artikeltext zu 1234
Artikel Nr. 1234     Artikeltext zu 1234
Artikel Nr. 1234     Artikeltext zu 1234

zu generieren.

(Ich möchte also vermeiden, dass ich - wenn wir bei einer Position mehrere Stück haben, die Zeile x-mal kopieren muss - zumal wir häufig sehr große Stückzahlen haben.)

Ich wäre Euch für Eure Hilfe dankbar.

Liebe Grüße

cervisia

MzKlMu

Hallo,
und zu was brauchst Du das?
Du hast doch die Info über die Stückzahl (3), wozu dann auch 3 DS?
Gruß Klaus

cervisia

Hab ich vergessen dazuzuschreiben - weil wir für jedes einzelne Stück eine Prüfnummer vergeben und ein eigenes Zeugnis erstellen müssen.

ebs17

Lege Dir eine Hilfstabelle an, die schlicht eine laufende Nummerierung als Inhalt hat (vgl. SQL-Rezepte), und dann ...
PARAMETERS BenoetigteAnzahl Long Integer;
SELECT D.*
FROM DeineTabelle D, T1000 AS T
WHERE T.I Between 1 AND [BenoetigteAnzahl]


MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

DF6GL

Hallo,

bei der Geschichte drängt sich mir die Frage auf, ob und wie denn nun die Zeugnisse eindeutig zu ihren entspr. Artikel(nummer)n zugeordnet werden sollen/müssen/können...
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

cervisia

Über eine eindeutige Prüfnummer, die im Prüfzeugnis angeführt wird und am Gerät selber angebracht ist.

DF6GL

Hallo,

ja , ok, sinnvollerweise sollte diese Nummer dann auch in der Tabelle mitgeführt werden (was vermutlich ja schon passiert)...
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

cervisia

Stimmt - die Nummer wird mitgeführt und das Generieren der Nummer ist auch kein Problem (ist ja eigentlich nur eine fortlaufende Nummer).
Das einzige Problem ist eben mein oben angesprochenes Problem.

MzKlMu

Hallo,
ZitatStimmt - die Nummer wird mitgeführt
wenn die Nummer bereits mitgeführt wird, in welcher Tabelle?
Dann müsste es doch die von Dir gewünschte Tabelle doch bereits geben, ansonsten könntest Du diese ja nicht mitführen.
Gruß Klaus

database

Hallo,

da krankt es wohl am Datenmodell - scheint mir alles recht Excellastig designed zu sein.

Sieh mal im Anhang ein gaaaaanz einfach gehaltenes Tabellenmodell um für jeden Artikel in der benötigten Stückanzahl Prüfnummern zu erfassen/vergeben.
Dass das natürlich über geeignete Formulare erfolgen muss, versteht sich von selbst - hier würde eine HF / UF Konstruktion recht hilfreich sein.

[Anhang gelöscht durch Administrator]

cervisia

Bitte nicht böse sein, aber ich brauche Hilfe bei meinem Problem und nicht beim Durchnummerieren!
Ich möchte auch nicht erklären müssen warum und wofür ich es brauche!

Auch wenn das jetzt ein bisschen barsch geklungen hat, bitte ich um weitere zahl- und hilfreiche Beiträge!
:D

DF6GL

Hallo,


"Ich möchte auch nicht erklären müssen warum und wofür ich es brauche!"


Doch, wenn Du Dein Problem von uns gelöst haben willst...  ::)



"...weitere zahl- und hilfreiche Beiträge"

sind nicht nötig, weil der Vorschlag  von ebs17  dein Anfangsproblem erschlägt.
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

database

Hi,

ZitatBitte nicht böse sein, aber ich brauche Hilfe bei meinem Problem und nicht beim Durchnummerieren!

Hast du meine Antwort nur gelesen oder auch verstanden?

"....aber ich brauche Hilfe bei meinem Problem...."
Dein Tabellenaufbau ist das Problem, das du lösen solltest

Das was du vorhast widerspricht den Regen eines relationalen Datenbankdesigns und führt früher oder später zu fehlerhafter Datenhaltung.
Obwohl mir eigentlich egal sein könnte wie oft du Duplikate in deiner Datenbank speichern willst rate ich dir dennoch davon ab.

Wenn das auch barsch klingt ...

MzKlMu

#13
Hallo,
also jetzt muss ich mal cervisia etwas helfen. Wenn von einem Artiekl 10 Stück verkauft werden und für jeden der 10 wird eine eigene Prüfnummer gebraucht so dazu ist eine Tabelle notwendig. Das widerspricht ja nicht der Normalisierung. Und Peter hat es ja so gemacht. Und cervisia will ja eine Lösung um automatisch die notwendige Anzahl DS in die entsprechende Tabelle zu schreiben, damit jeweils eine Prüfnummer eingetragen werden kann. Wobei es natürlich genügt, nur die ArtikelID und die BestellId in diese Tabelle zu schreiben, nicht wie im Titel geschrieben komplette Kopien.

Es gibt aber noch Klärungsbedarf, so ist meine Rückfrage vom April 19, 2012, 16:01:59 nicht beantwortet worden.
Gruß Klaus

cervisia

Liebe Forumsgemeinde!

Meinen Dank zuvor an ebs17, der als einziger (obwohl nur 48 Posts) einen Lösungsweg gepostet hat und auch an MzKlMu, der zumindest verstanden hat, was mein Problem ist, und dass ich eigentlich keine Dublikate in meiner Datenbank habe, sondern ausschließlich einzigartige Datensätze (durch die Prüfnummer, die vergeben wird). Danke auch an DF6GL, der zumindest anfangs versucht hat, sich um mein Problem zu kümmern, bis ich ihn in seinem "Forumsstolz"  verletzt habe. Das tut mir leid und war nicht beabsichtigt. Ich habe meinen Post vom 23. April falsch formuliert. Natürlich erkläre ich gerne, wofür ich was brauche (habe ich ja auch getan) - was ich meinte war, dass ich mich nicht rechtfertigen wollte ob ich es auch wirklich brauche. Wie gesagt - sorry für die falsche Formulierung - war nicht so gemeint.

Jetzt aber zu Dir - database - Du Access-Guru. Du machst hier einen auf John Wayne und pöbelst herum, dass es eine Freude ist! Obwohl - Du hast Dein kleines Bildchen vom amerikanischen Helden wahrscheinlich zu Recht ausgesucht. Laut und proletenhaft, wie die Amerikaner fällst Du über alles her, was Du nicht kennst und auf das, was den eingenen (oft sehr eingeschränkten) geistigen Horizont übersteigt, wird hingehackt.
Meldungen wie

"Hallo,

da krankt es wohl am Datenmodell - scheint mir alles recht Excellastig designed zu sein.

Sieh mal im Anhang ein gaaaaanz einfach gehaltenes Tabellenmodell um für jeden Artikel in der benötigten Stückanzahl Prüfnummern zu erfassen/vergeben.
Dass das natürlich über geeignete Formulare erfolgen muss, versteht sich von selbst - hier würde eine HF / UF Konstruktion recht hilfreich sein."

wirken eher herablassend, als hilfreich.

"da krankt es wohl am Datenmodell - scheint mir alles recht Excellastig designed zu sein."
Vielleicht solltest es nach 23.00 im TV als Fernseh-Wahrsager probieren - vielleicht schaffst Du es dort auch zum Guru!

"gaaaanz einfach" impliziert "gaaaaanz einfach, dass Du D*** es auch verstehst"
Ein einziges a im ganz hätte auch gereicht, wenn Du es allerdings so nötig hast, den Leuten zu zeigen, wie enorm groß und fundiert Dein Wissen ist und um wieviel Du besser bist als sie, ....

"Dass das natürlich über geeignete Formulare erfolgen muss, versteht sich von selbst - hier würde eine HF / UF Konstruktion recht hilfreich sein."
Wenn Du nicht nur pöbeln, sondern wirklich helfen wolltest, hättest Du vielleicht gnädigerweise erklärt, welche Formulare das sein könnten und wie man sie als HF und UF kombinieren könnte.
(So, dass es auch jemand versteht, der nicht so gut ist, wie Du!)

Was aber dem Fass den Boden ausschlägt:

"Hi,

Zitat
Bitte nicht böse sein, aber ich brauche Hilfe bei meinem Problem und nicht beim Durchnummerieren!

Hast du meine Antwort nur gelesen oder auch verstanden?

"....aber ich brauche Hilfe bei meinem Problem...."
Dein Tabellenaufbau ist das Problem, das du lösen solltest

Das was du vorhast widerspricht den Regen eines relationalen Datenbankdesigns und führt früher oder später zu fehlerhafter Datenhaltung.
Obwohl mir eigentlich egal sein könnte wie oft du Duplikate in deiner Datenbank speichern willst rate ich dir dennoch davon ab.

Wenn das auch barsch klingt ..."

Dazu erspare ich mir jeglichen Kommentar!

Übrigens für alle, die es interessiert - ich habe eine (wie ich finde) recht elegante Lösung gefunden.
Ich habe einfach in das Formular, in dem die Auftragsdaten (Stückzahl, Artikelnummer etc.) eingegeben werden, einen Button eingebaut. Wenn man auf den klickt, wird eine Anfügeabfrage ausgeführt, die ich in eine Schleife eingebaut habe, die so oft durchlaufen wird, bis die Stückzahl erreicht ist. Um die lästigen Bestätigungsfelder zu unterdrücken, die bei einer solchen Abfrage standardmäßig kommen, habe ich sie vor der FOR-Schleife einfach ausgeschaltet und danach wieder eingeschaltet.

Hier der Code:

DoCmd.SetWarnings False (schaltet die Bestätigungsmeldungen aus)
    Dim stDocName As String

    stDocName = "Name der Anfügeabfrage"
   
    Dim intI As Integer
For intI = 1 To [Name der Auftragstabelle!Name der Tabellenspalte mit der Stückzahl]

DoCmd.OpenQuery stDocName, acNormal, acEdit  (führt die Abfrage aus)
Next intI
DoCmd.SetWarnings True (schaltet die Bestätigungsmeldungen wieder ein)


Die einzelnen Datensätze, die mit der Anfügeabfrage erzeugt werden, werden dann in eine Tabelle angefügt, in der auch gleichzeitig die Prüfnummer erzeugt wird, die den Datensatz zu einem einzigartigen macht.

Hast Du es gelesen UND verstanden, Johnny, oder soll ich Dir bei Gelegenheit eine Zeichnung davon machen....

Liebe Grüße
cervisia