Access Button soll Code ausführen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Um einem Button einen Code zuzuordnen, machst du einfach einen Rechtsklick auf den Button und dann auf Ereignis... dann geht ein Fenster auf, wo du auf "Code-Generator" klickst.

Alternativ kannst du das Eigenschaftenfenster vom Button öffnen und da in die Registerkarte "Eigenschaften" gehen und einen Doppelklick bei "Beim Klicken" machen. Dann steht "[Ereignisprozedur]" drin und wenn du auf die drei Punkte klickst, wird auch der VBA-Editor geöffnet.

Zum eigentlichen Problem: Würde es auch gehen, wenn du den Key und die Anzahl in einem Formular eingibst und dann einfach entsprechend viele Einträge in eine Tabelle geschrieben werden, anstatt dass du einen Eintrag per Hand in die Tabelle schreibst und ihn dann mit der Prozedur mehrmals kopierst?

Wenn du schon ein Formular mit einem Button hast, kannst du da einfach zwei Textfelder anlegen (ich nenne sie mal txtKey und txtCount) und kannst dann für den Button (ich hab ihn hier mal btnInsert genannt) diese Prozedur rein machen:

Option Compare Database
Option Explicit

Private Sub btnInsert_Click()
    Dim count As Integer, i As Integer
    
    ' Textinhalt in Zahl umwandeln, um sicherzugehen, dass eine Zahl eingegeben wurde
    count = Me.txtCount.Value
    
    ' Sicherstellen, dass etwas eingegeben wurde
    If Me.txtKey = "" Then
        MsgBox "Bitte einen Key eingeben"
        Exit Sub
    End If
    
    If count = 0 Then
        MsgBox "Bitte eine Anzahl eingeben"
        Exit Sub
    End If
    
    ' Daten einfügen
    Dim RS As DAO.Recordset
    Set RS = CurrentDb.OpenRecordset("KeyAssignments")
    For i = 1 To count
        ' Man könnte auch currentDB.execute(SQL-Befehl) nehmen, aber das ist anfällig für SQL-Injection Attacken
        RS.AddNew
        RS!Key = Me.txtKey
        RS.Update
    Next i
    
    MsgBox "Es wurden " & count & " Einträge mit dem Key """ + Me.txtKey + """ eingetragen."
End Sub