Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Datensatz nach Anzahl vervielfältigen

Frage Microsoft Microsoft Office

Mitglied: lsckronach

lsckronach (Level 1) - Jetzt verbinden

25.07.2012 um 14:47 Uhr, 2945 Aufrufe, 5 Kommentare

Hallo zus.,
ich habe folgende Rohdaten (Eingang) zu einer Bestellung. Diese müssen wenn die Anzahl des Datensatzes (z.B. 5 Stück) sind,
ausgelesen und einzeln in eine andere Datei (Lagerbuchung) geschrieben werden. Wie kann dies am einfachsten gelöst werden ? Die Datenstruktur ist immer gleich. Wenn diese Daten einzeln (Menge 1 Stück) zur Verfügung stehen werden Etiketten über einen Drucker erzeugt. Diesen Druckjob wollte ich über eine kleine Abfrage mit MS Access lösen. Die Abfrage greift schon, ich scheitere nur an der vervielfältigung der Datensätze.


Rohdaten (Eingang):

97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000010;70905001;580;Bezeichnung; 1,000;ST;HRL;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000020;90456976;190;Bezeichnung; 1,000;ST;3/12/10/06;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 5,000;ST;3/21/11/04;20120723

Zieldatei (Lagerbuchung):

97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000010;70905001;580;Bezeichnung; 1,000;ST;HRL;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000020;90456976;190;Bezeichnung; 1,000;ST;3/12/10/06;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;1/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;2/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;3/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;4/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;5/5


Vielen Dank für eure Unterstützung

Gruß Dirk
Mitglied: NetWolf
25.07.2012 um 16:00 Uhr
Moin Moin,

ich gehe davon aus, dass die Informationen in Felder geschrieben werden. D.h. meine Annahme: Rohdaten ist eine Tabelle.

Baue in VBA ein Schleife, die die Rohdaten durchgeht.
Wenn dann bei Anzahl ein 5 steht sind folgende Schritte notwendig:

1- Anzahl merken
2- Datensatz ändern: Anzahl = 1 / Teilvon = 1/5
3- Datensatz kopieren
4- Schleife bis Anzahl-1 erreicht wird
4- kopierten Datensatz als neuen einfügen
5- neuen Datensatz ändern: Teilvon = 2/5
usw.
6- Ende Schleife bis Anzahl erreicht wird

Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: lsckronach
26.07.2012 um 07:29 Uhr
Moing Wolfgang,

diesen gedanken habe ich auch schon gefasst.

Ich habe ein Problem mit der Schleife wie der Code aussehen soll ?

In der Tab. Komm_tmp befinden sich die Rohdaten und sollen nach der Schleife
in die tblVerarbeitung eigefügt werden. Im Feld FMenge ist die Anzahl (Stück).
In der Tabelle "Faktura" (97806850) befindet sich der Datensatz welcher gedruckt bzw. geprüft werden soll.
Es sollen alle Felder nach der Prüfung aus der Tab. "Komm_tmp" in die "tblVerarbeitung" (einzeln) eingefügt werden.

Private Sub Befehl21_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim lngCounter As Long
Dim strSQL As String

Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM Komm_tmp")
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
If Nz(rs.Fields("Fmenge"), "") <> "" Then

*da is der Wurm drin**

For lngCounter = 1 To FMenge

strSQL = "INSERT INTO tblVerarbeitung (Faktura)" _
& " values (Me!Faktura.Text)"

db.Execute strSQL, 128 'dbFailOnError ', 128 'dbFailOnError hinzugefuegt

Next lngCounter
Else
MsgBox "Fehler in Datensatz, keine Datensätze vorhanden"
End If
'Wenn die Sollkopienzahl in die neue Tabelle geschrieben wurde,
'weiter mit dem nächsten rs der Herkunftstabelle... und loop
rs.MoveNext
Loop
End If
Bitte warten ..
Mitglied: NetWolf
27.07.2012 um 20:50 Uhr
Hi,

du solltest auch 2 Tabellen/Abfragen öffnen, wenn du beide bearbeiten willst. Oder wenn du eine ID hast, kann man das auch per SQL lösen.

Also poste hier mal bitte die Struktur beider Tabellen mit Feldnamen und Feldtypen.

Grüße aus München
Wolfgang
(Networlf)
Bitte warten ..
Mitglied: lsckronach
31.07.2012 um 13:42 Uhr
Hallo Wolfgang,

es sind 3 Tabellen welche ich eingerichtet habe.

Tabelle "Faktura" (Textfelder)
Faktura / Datum

Tabelle "Import" (alles Textfelder, Menge als Integer)
Faktura / Name / Strasse / Land / PLZ / Ort / Kunde /Pos / Bezeichnung / Menge / Stellplatz /

97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000010;70905001;580;Bezeichnung; 1,000;ST;HRL;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000020;90456976;190;Bezeichnung; 1,000;ST;3/12/10/06;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 5,000;ST;3/21/11/04;20120723


Tabelle "Lager" (alles Textfelder, Menge als Integer)
Faktura / Name / Strasse / Land / PLZ / Ort / Kunde /Pos / Bezeichnung / Menge / Stellplatz /

97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000010;70905001;580;Bezeichnung; 1,000;ST;HRL;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000020;90456976;190;Bezeichnung; 1,000;ST;3/12/10/06;20120723
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;1/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;2/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;3/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;4/5
97806850;Name;;Strasse;Land;PLZ;Ort;000030001;000000030;34018;440;Bezeichnung; 1,000;ST;3/21/11/04;20120723;5/5

In der Tabelle "Fakura" befindet sich 1 Datensatz welcher aus der Tabelle "Import" vervielfältigt werden muss und in dieser Beziehung in der Tabelle "Lager" abgelegt werden. Wenn die Anzahl z.B. 5 Stück ist, so muss die 1/5 -5/5 mit ausgegeben werden.

Wenn Du mir die emailadresse gibts, kann ich Dir auch die Tabelle zusenden

Gruß Dirk
Bitte warten ..
Mitglied: lsckronach
10.08.2012 um 07:44 Uhr
Hallo Wolfgang,

bin schon etwas weiter, jetzt wird aber nur die erste bzw. aktuelle Zeile vervielfältigt.
Mit welchen Befehl wir die schleife mit allen Feldern durchsucht ?


Private Sub Befehl15_Click()

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Komm_Import_tmp")
For i = 1 To Me![Menge]
' With rst
With CurrentDb().OpenRecordset("tblVerarbeitung", dbOpenDynaset, dbAppendOnly)

.AddNew
!Faktura = Me![Faktura]
!Name1 = Me![Name1]
!Pos = Me![Pos]
!Mat = Me![Mat]
!Code = Me![Code]
!MatBez = Me![MatBez]
!Menge = 1
'...
.Update
.Close
End With
Next i

End Sub
Bitte warten ..
Ähnliche Inhalte
Netzwerkmanagement
Subnettig - max anzahl an Subnetze (23)

Frage von Meterpeter zum Thema Netzwerkmanagement ...

Multimedia
Software um USB-Sticks zu vervielfältigen (18)

Frage von hanheik zum Thema Multimedia ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
Cisco W-Lan Controller als Applicance oder Software (11)

Frage von Herbrich19 zum Thema LAN, WAN, Wireless ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...