Datensätze mittels DAO ändern und ausgeben

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Datensätze mittels DAO ändern und ausgeben
von: Hans Egonschmidt
Geschrieben am: 30.11.2015 14:14:54

Hallo
ich habe eine Userform erstellt, wo zu allererst die Bestelldaten aus einer Access Datenbank eingelesen werden und ich über 2 Option-Buttons auswählen kann, ob ich entweder alle Preise änderen möchte oder nur die einer bestimmten Kategorie (Auswahl der Kategorien über eine Combo-Box). Hierbei wird dann ein Wert in % in ein Textfeld angegeben, in wie weit sich der Preis erhöhen soll.
Die Ausgabe der kompletten, aktualisierten Daten soll dann in Tabelle1 erfolgen.
Bei mir erfolgt aber keine Ausgabe der Daten, wenn ich die Prozedur starte und auf den Command Button klicke, geschieht nichts, es kommt auch keine Fehlermeldung. Die Kategorien werden mir normal beim starten der Userform als Auswahl in der Combo-Box angezeigt.
Was mache ich falsch?

Option Explicit
Private Sub cmdPreis_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Pfad As String
Pfad = "J:\Bestelldaten"
With Worksheets("Tabelle1")
    
    .Activate
    Set db = DAO.OpenDatabase(Pfad)
    Set rs = db.OpenRecordset("Artikel", dbOpenDynaset)
    
    If Me.optAlle = True Then
        Do Until rs.EOF = True
            rs.Edit
            rs.Fields("Einzelpreis").Value = rs.Fields("Einzelpreis") * CDbl(Me.txtPreisä _
nderung.Value)
            rs.Update
            rs.MoveNext
        Loop
    ElseIf Me.optKategorie = True Then
         Do Until rs.EOF = True
            rs.Edit
            rs.Fields("Einzelpreis").Value = rs.Fields("Einzelpreis") * CDbl(Me.txtPreisä _
nderung.Value)
            rs.Update
            rs.MoveNext
        Loop
       
    End If
    
    .Range("A1").CopyFromRecordset rs
    
End With
End Sub
Private Sub optAlle_Click()
If Me.optAlle = True Then
    Me.cboKategorie.Enabled = False
End If
End Sub
Private Sub optKategorie_Click()
If Me.cboKategorie = True Then
    Me.cboKategorie.Enabled = True
End If
End Sub
Private Sub UserForm_Initialize()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Pfad As String
Pfad = "J:\Bestelldaten"
Set db = DAO.OpenDatabase(Pfad)
Set rs = db.OpenRecordset("Kategorien", dbOpenDynaset)
Me.cboKategorie.ColumnCount = 2
Do Until rs.EOF = True
    Me.cboKategorie.AddItem
    Me.cboKategorie.List(Me.cboKategorie.ListCount - 1, 0) = rs.Fields("Kategorie-Nr")
    Me.cboKategorie.List(Me.cboKategorie.ListCount - 1, 1) = rs.Fields("Kategoriename")
    Me.cboKategorie.BoundColumn = 1
    Me.cboKategorie.ColumnWidths = "0;3"
    
    rs.MoveNext
Loop
End Sub

Bild

Betrifft: AW: Datensätze mittels DAO ändern und ausgeben
von: Tino
Geschrieben am: 03.12.2015 10:41:59
Hallo,
habe ich jetzt nicht getestet!
Aber fehlt bei Pfad = "J:\Bestelldaten" nicht noch etwas?
Gruß Tino

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datensätze mittels DAO ändern und ausgeben"