Thema Datum  Von Nutzer Rating
Antwort
Rot Datenübergabe automatisieren
03.06.2018 15:31:11 Markus
NotSolved
03.06.2018 21:15:02 Gast3755
NotSolved
03.06.2018 21:19:34 Markus
NotSolved

Ansicht des Beitrags:
Von:
Markus
Datum:
03.06.2018 15:31:11
Views:
1021
Rating: Antwort:
  Ja
Thema:
Datenübergabe automatisieren

Hallo zusammen,

wir bekommen von unseren Lieferanten eine größere Stückzahl an Teilen die einer einzigen Chargennummer zugeordnet sind.Zur Rückverfolgung der verschiedenen Mitarbeiter im Rahmen der Teilebearbeitung wird die Losgröße auf die definierten Verpackungseinheiten gesplittet und jedem Karton eine eigene Chargennummer zugewiesen.Die Verpackungseinheiten sind in der Tabelle „Artikelstammdaten“ über die Datenfelder  „Artikelnummer“ und „Verpackungsmenge“  pro Karton festgelegt.

Die Teile vom Lieferanten werden in einem Datensatz mit den Datenfeldern:

„ Artikelnummer“              „Menge“             „Chargennummer“

In die Tabelle „Fertigungsaufträge“ manuell eingegeben.

Durch eine Schaltfläche wird das Makro Modul 1 gestartet.

Die Erstellung der eigenen „Chargennummer“ erfolgt in der Tabelle „Chargen“. 

Public Sub createCharges()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset, rs1 As DAO.Recordset
    Dim lngAnzahl As Long
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT * FROM Fertigungsaufträge WHERE erledigt = 0;")
    
    If rs.RecordCount = 0 Then
        MsgBox "Keine zu bearbeitenden Lieferungen gefunden.", vbInformation
        GoTo cleanUp
    End If
    
    Do While Not rs.EOF
        Set rs1 = db.OpenRecordset("SELECT Verpackungsmenge FROM Artikelstammdaten WHERE Artikelnummer = '" & rs.Fields("Artikelnummer") & "';")
        
        If rs1.RecordCount = 0 Then
            MsgBox "Zur Lieferung" & vbCrLf & vbCrLf & _
                rs.Fields("ID") & " | " & rs.Fields("Artikelnummer") & " | " & rs.Fields("Menge") & " | " & rs.Fields("Chargennummer") & vbCrLf & vbCrLf & _
                "wurden keine Stammdaten gefunden.", vbInformation, "Überspringe Lieferung"
            GoTo cleanUp
        Else
            Dim lngMenge As Long
            Dim lngVerpackungsmenge As Long
            Dim lngCount As Long
            
            lngMenge = rs.Fields("Menge")
            lngVerpackungsmenge = rs1.Fields("Verpackungsmenge")
            
            Do While lngMenge > 0
                Select Case lngMenge
                    Case Is >= lngVerpackungsmenge
                        db.Execute ("INSERT INTO Chargen (Artikelnummer, Menge) VALUES ('" & rs.Fields("Artikelnummer") & "', " & lngVerpackungsmenge & ");")
                    Case Is < lngVerpackungsmenge
                        db.Execute ("INSERT INTO Chargen (Artikelnummer, Menge) VALUES ('" & rs.Fields("Artikelnummer") & "', " & lngMenge & ");")
                End Select
                lngCount = lngCount + 1
                lngMenge = lngMenge - lngVerpackungsmenge
            Loop
        End If
        
        db.Execute ("UPDATE Fertigungsaufträge SET erledigt = -1 WHERE ID = " & rs.Fields("ID") & ";")
        rs.MoveNext
    Loop
    
    MsgBox "Verarbeitung erfolgreich, es wurden " & lngCount & " Chargen erstellt.", vbInformation
    
cleanUp:
    If Not rs1 Is Nothing Then Set rs1 = Nothing
    If Not rs Is Nothing Then Set rs = Nothing
    If Not db Is Nothing Then Set db = Nothing
End Sub

Aktuell werden in der Tabelle „Chargen“ auf Basis der Verpackungsmenge die entsprechende Anzahl von Datensätzen (inklusive einer Restmenge bei unvollständiger Packeinheit) erstellt

    Ein Datensatz enthält die  Datenfelder: 

„Autowert = eigene Chargennummer“       „Menge“                „Artikelnummer“

Zur Erstellung eines Druckauftrages möchte ich jedoch die Datensätze in der Tabelle „Chargen“ über das Feld „ InterneLieferscheinnummer“ filtern.Das Makro erstellte mir freundlicher weise ein netter Teilnehmer im VBA Forum.  Leider fehlen mir die Kenntnisse um das Makro „Modul1“ so zu erweitern, dass die Daten im   Datenfeld „ InterneLieferscheine“ aus der Tabelle „ Fertigungsaufträge“ in jeden Datensatz in die Tabelle „Charge“ in das Datenfeld „InterneLieferscheinnummer“  automatisch mit übertragen werden.

Für eure Hilfe bedanke ich mich schon jetzt.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Datenübergabe automatisieren
03.06.2018 15:31:11 Markus
NotSolved
03.06.2018 21:15:02 Gast3755
NotSolved
03.06.2018 21:19:34 Markus
NotSolved