# Access VBA 2003 - Datensätze duplizieren, Zustände ändern, Zustände filtern



## MehmetEmir (7. März 2011)

Hallo Freunde,

ich bin neu hier und brauche hilfe.

Ich habe eine DB Lagerverwaltung. Ich habe mehrere Formulare erstellt und gelöscht ein paar stehen noch in meinem Datenbank.

Was ich machen will:
- per Knopfdruck Datensatz duplizieren/speichern. Ich will das so viele Datensätze in der Tabelle Lager eingefügt wird wie der Eingabe xy Zahl in der Artikelmenge. 

- per Knopfdruck soll sich der Zustand z.B. von Bestellt auf geliefert ändern. Leider ändern sich alle Zustände, es kann ja mal passieren dass nicht Artikel geliefert werden.

-Kombinationsfeld Zustandsbezeichnung, da versuche ich Zustände aufzurufen und per Auswahl soll er mir die Zustände mit der Artikel anzeigen 

ich hoffe dass ich mich ausdrücken konnte.

Herzlichen Dank


----------



## tombe (8. März 2011)

Also ich habe mir die Datei mal angeschaut, aber ich werde nicht so ganz schlau was du machen willst.

Zeig mal den Code wie du es bis jetzt versucht hast. Vielleicht wird man daraus dann schlauer oder findet einen Fehler.


----------



## MehmetEmir (8. März 2011)

Erstmal vielen vielen Dank für deine Antwort/Nachricht

Ich habe meine Codes kopiert und eine neues kleines Datenbank erstellt mit der Probleme die ich habe

Folgendes:
- auf den Formular habe ich einen Textfeld Artikelmenge. Nachdem ich xy Zahl eingegeben und Knopf "Datensatz duplizieren" geklickt habe soll in der tblLager xy Zeilen eingefügt werden, weil ich nachher für jeden Artikel nach der Qualitästkontrolle eine Seriennummer geben muss. Also für jeden Artikel brauche ich einen Datensatz

- Ich will per Knopf "Zustand speichern" Artikelzustände ändern. Ich habe die SQL Anweisung definiert aber es funktioniert nicht, außerdem möchte ich nicht dass alle Datensätze in der Tabelle sich automatisch z.B. von bestellt auf geliefert ändert, weil nicht alle Artikel die bestellt sind werden gleichzeitig geliefert.

- über das KombinationsfeldZustand will ich Datensätze nach Zustand filtern. z.B. zeige mir alle Artikel in der Artikelliste "Listenfeld" die den Zustand bestellt besitzen



Option Compare Database
Option Explicit

Private Sub Artikelliste_AfterUpdate()
Dim rs As Recordset

Set rs = Me.RecordsetClone
'rs.FindFirst "[Art_Bezeichnung] = " & Str(Me![Artikelliste])
rs.FindFirst "[ArtikelID] = " & Str(Me![Artikelliste])
Me.Bookmark = rs.Bookmark
End Sub

Sub button_zustand_speichernaendern_Click()


    Dim strSQL As String
    Dim rst As ADODB.Recordset

    Set rst = CurrentDb.Connection.Execute("SELECT * FROM tblLager")
    Do Until rst.EOF
    Debug.Print rst.Fields("ZustandID")
    rst.MoveNext
    Loop



    strSQL = "UPDATE tblLager SET tblLager.ZustandID = 'geliefert' WHERE tblLager.ZustandID = 'bestellt'"

    DoCmd.SetWarnings False

    'DoCmd.RunSQL "UPDATE tblLager SET tblLager.ZustandID = 'geliefert' WHERE tblLager.ZustandID = 'bestellt'"
    'DoCmd.RunSQL "Update tblLager SET tblLager.Artikelmenge = 0"

    DoCmd.RunSQL strSQL

    DoCmd.SetWarnings True



End Sub
Private Sub button_artikel_duplizieren_Click()
'Dim intz As Integer
'Dim anzahl As Integer
'
'anzahl = Artikelmenge
'
'
'    For intz = 1 To anzahl
'    Next intz
'


On Error GoTo Err_button_duplizieren_Click
    Dim db  As DAO.Database
    Dim rst As DAO.Recordset
    Dim ds  As DAO.Recordset
    Dim fld As DAO.Field
    Dim intz As Integer

    ' Verweis auf die aktuelle Db setzen
    Set db = CurrentDb
    'Recordset auf die Tabelle Lager
    Set rst = db.OpenRecordset("tblLager")

    'Inhalt des aktuellen Datensatzes wird ausgelesen
    Set ds = db.OpenRecordset("SELECT * FROM tblLager ")
    'Neuen Datensatz einfügen
    rst.AddNew

    rst.Update



    For intz = 1 To 100

    Next intz




    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_button_duplizieren_Click:
    Exit Sub

Err_button_duplizieren_Click:
    MsgBox Err.Description
    Resume Exit_button_duplizieren_Click


End Sub



Private Sub KombinationsfeldZustand_AfterUpdate()

Me.Filter = "Zustaende='" & Me!KombinationsfeldZustand & "'"
Me.FilterOn = True


End Sub


Danke


----------

