Supprimer une ligne d'une base de donnée à partir d'une listbox dans VBA

Bonjour à tous,

Je suis actuellement étudiant en DUT Génie mécanique et productique, mon prof d'info nous a donné comme projet de créer une interface d’interrogation à une base de données sous Access

Voici le sujet :

Demandeur : Plateforme de distribution – Service de préparation des commandes

Objectifs : Le service demande un outil permettant de gérer plus facilement les kits à préparer et la position de chaque composant dans les magasins de stockage.

Le client veut disposer d’une interface intuitive et personnalisée à son image. La page d’accueil permettra l’accès direct à chacune des fonctions sous la forme d’une page chacune.

J'ai donc réaliser une fonction pour ajouter les magasins et les kits, ainsi qu'une fonction recherche pour sélectionner un magasin ou un kit selon les différentes colonnes de la base de données.

Je suis actuellement rendu à la fonction supprimé, mais la je bloque sur celle-ci.

Pour afficher les réponses de la fonction recherche j'utilise une ListBox. J'avais penser pour la fonction supprimer de sélectionner une ligne de cette ListBox et de valider la suppression de celle-ci en utilisant un bouton.

Pour l'instant mon code est celui-ci mais j'ai un message me disant : "Fonction ou variable attendue".

Private Sub ToggleButton3_Click()
Dim bds As Database
Dim re As Recordset
Dim test As Integer

Set bds = OpenDatabase(ThisWorkbook.Path & "\kitting.mdb")

test = ListBox1.ListIndex

Set re = bds.Execute("DELETE * FROM Magasins WHERE Id=test")

While Not re.EOF
'Supprimer l'enregistrement
    re.Delete
'Passer au suivant
    re.MoveNext
Wend

bds.Close
re.Close
Set bds = Nothing
Set re = Nothing

End Sub

Merci d'avance pour votre aide !

Bonjour,

l'item de la 1er colonne est

ListBox1.List(ListBox1.ListIndex, 0)

si la variable test représente la sélection dans la ListBox en 1er colonne (0)

test =ListBox1.List(ListBox1.ListIndex, 0)

Bonjour,

En complément de ce que t'indique sabV , il te faut sortir ta variable de la chaîne donc elle ne doit pas être entourée de guillemets :

Set re = bds.Execute("DELETE * FROM Magasins WHERE Id=" & test)

et non :

Set re = bds.Execute("DELETE * FROM Magasins WHERE Id=test")

re,

bien vue Theze,

Rechercher des sujets similaires à "supprimer ligne base donnee partir listbox vba"