Thema Datum  Von Nutzer Rating
Antwort
Rot Feldinhalte nach dem Kopieren und einfügen in einer neuen Tabelle vertauscht
08.06.2018 22:01:32 Markus
NotSolved

Ansicht des Beitrags:
Von:
Markus
Datum:
08.06.2018 22:01:32
Views:
995
Rating: Antwort:
  Ja
Thema:
Feldinhalte nach dem Kopieren und einfügen in einer neuen Tabelle vertauscht

Liebe Forumsmitglieder,

die Datenbank ist mit Access 2016 erstellt.. Meine Kenntnisse in VBA sind jedoch sehr gering. Der verwendete Code wurde mir hier im Forum zur Verfügung gestellt. Nun habe nur das Feld " DTLInternelieferscheinnummer" hinzugefügt.

Mit Hilfe des VBA  Codes  werden aus der Tabelle "Fertigungsaufträge"  Datenwerte in die Tabelle "Chargen" kopiert. In diesem Prozessschritt werden in der Tabelle "Chargen"  zu jedem Datensatz entsprechend der Verpackungsmenge einzelne Chargen gebildet.

Mein Problem ist, dass nach dem Kopieren aus der Tabelle " Fertigungsaufträge beim Einfügen in die Tabelle " Chargen" die Daten der Felder "Menge" und    "DTLInterneLieferscheinummer" vertauscht werden.

Der Inhalt des Datenfeldes " Menge" aus der Tabelle "Fertigungsaufträge" wird in der Tabelle "Chargen" in das Feld " DTLInternelieferscheinnummer" übertragen  und der Inhalt des Datenfeldes  "Menge"  in das Datenfeld  "DTLInternelieferscheinnummer".

Hoffentlich könnt Ihr mir hier weiterhelfen. Ich weiss nicht wo der Fehler liegt. Es wäre Klasse wenn Ihr mir hier helfen könntet.

Vielen Dank

Markus

 

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 ArtikelNr = '" & rs.Fields("ArtikelNr") & "';")
        
        If rs1.RecordCount = 0 Then
            MsgBox "Zur Lieferung" & vbCrLf & vbCrLf & _
                rs.Fields("ID") & " | " & rs.Fields("ArtikelNr") & " | " & rs.Fields("Menge") & " | " & rs.Fields("Chargennummer") & vbCrLf & vbCrLf & _
                "wurden keine Stammdaten gefunden.", vbInformation, "Überspringe Fertigungsaufträge"
            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 (ArtikelNr, Menge, DTLInterneLieferscheinnummer) VALUES ('" & rs.Fields("ArtikelNr") & "','" & rs.Fields("DTLInterneLieferscheinnummer") & "', " & lngVerpackungsmenge & ");")
                    Case Is < lngVerpackungsmenge
                        db.Execute ("INSERT INTO Chargen (ArtikelNr, Menge, DTL interne Lieferscheinnummer) VALUES ('" & rs.Fields("ArtikelNr") & "','" & rs.Fields("DTLInterneLieferscheinnummer") & "', " & 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

 

 

 

 


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 Feldinhalte nach dem Kopieren und einfügen in einer neuen Tabelle vertauscht
08.06.2018 22:01:32 Markus
NotSolved