Auslesen und eintragen eines Listenfelds(ListCount)

subara

Mitglied
Hallo Leute,
ich möchte eine neue Kategorie in eine Datenbank eintragen, welche einen Namen und eine Beschreibung enthält. Dies funktioniert soweit und wird in die Tabelle "categories" eingetragen.

Die Kategorie sollte nun zu mehreren Maschinen gehören.
Das brauche ich später in einer Suchfunktion. Als Beispiel: Ich wähle in einem Dropdown die Maschine aus. Nun muss ich in einem anderen Dropdown die Kategorie auswählen. Dabei sollten mir nur Kategorien zur auswahl stehen, welche der Maschine zugehören.

Ich habe es mit einem Listenfeld versucht, was aber nicht so richtig funktioniert(Laufzeitfehler 2480), bzw kann ich die ausgewählten Maschinen nicht ausgeben / in die Tabelle "machine_cat" schreiben.
Kann mir jemand helfen oder mir einen Tipp geben wie ich die ausgewählten Maschinen ausgeben kann und zusätzlich die Zugehörigkeit bestimmen kann?Eventuell die AutoWert-Nummer oder den Kategorienamen der Kategorie und die ausgewählten Maschinen in "machine_cat" schreiben.

Noch zum Aufbau:
Die Kategorie wird mit Name und Beschreibung in die Tabelle "categories" eingetragen.
Die Maschinen befinden sich in der Tabelle "machines"
"machine_cat" enthält 3 Spalten: ID, Machine und Category

Printscreen:
siehe unten


Code:
Visual Basic:
'############################### Daten "Neue Kategorie" eintragen ####################################

Private Sub add_category_bt_Click()
    
    'Feldinhalt in Variablen schreiben
    strName = Me!add_category_name
    strDescription = Me!add_category_description
    boolCp = 0
        
    'Verbindung zu Tabelle "categories"
    Dim rst2 As Recordset
    Set rst2 = CurrentDb.OpenRecordset("categories")
    
    'Überprüfung auf leere Felder
    If strName <> "" And strDescription <> "" Then
        
        'Schleife zur Überprüfung ob nicht schon vorhanden
        Do While Not rst2.EOF
        
            If strName = rst2!Name Then
                  
                boolCp = 1
            
            End If
            
            rst2.MoveNext
            
        Loop
        
        'Falls noch nicht vorhanden --> einfügen
        If boolCp = 0 Then
        
            'Daten einfügen
            With rst2
                If .Updatable Then
                    .AddNew
                    !Name = strName
                    !Description = strDescription
                    .Update
                End If
            End With
        
            'Verbindung schliessen
            rst2.Close
        
            MsgBox "Erfolgreich eingetragen!"
            
        Else
        
            MsgBox "Diese Baugruppe/Kategorie ist schon vorhanden!"
        
        End If
    
    'Falls leere Felder, Meldung ausgeben
    Else
    
        MsgBox "Bitte füllen Sie alle Felder aus !"
    
    End If
    
    'Maschinen zur Kategorie in Tabelle schreiben
    'Die Daten des Listenfeldes müssen in die Tabelle machine_cat geschrieben werden
    
    Dim strTemp As String
    boolEnd = False
    ListCount = 0
    
    Do While boolEnd = False
    
        strTemp = Me!add_cat_machines.ItemData(Me!add_cat_machines.ItemsSelected(ListCount))
    
        If strTemp = Null Then
    
            boolEnd = True
    
        Else
    
        ListCount = ListCount + 1
    
    End If
        
    Loop
       
End Sub
 

Anhänge

  • Unbenannt.JPG
    Unbenannt.JPG
    14,9 KB · Aufrufe: 38
Zurück