Supprimer une ligne access a partir de VBA

115projetvba.zip (95.80 Ko)

Bonjour,

J'ai créé une interface pour gerer la maintenance de dispositifs dans le cadre d'un stage en allemagne dans une compagnie qui vend des dispositifs médicaux.

Ma base de donnée est un fichier access nommé projetVBA qui contient les dispositifs chacun contenant 11 colonnes dont le numéro de série! Trois options sur cette interface: ajouter/modifier/supprimer dispositif de la base de donnée à partir de excel!

Ajouter et modifier marchent bien mais pour l'option supprimer je rencontre quelques problème:

L'erreur indiquée est sur cette ligne: "basedonnee.CurrentDb.Execute "DELETE Seriennummer from dispositif where Seriennummer=" & SN & ";" qui est dans le code inséré dans le bouton supprimer de la userform!

L'option supprimer fonctionne comme suit: sur linterface l'utilisateur choisit le bouton supprimer, un inputbox s'ouvre il entre le numéro de série (SN) puis une userform avec une listbox s'ouvre affichant touts les dispositifs correspondant a ce numéro de série (pour différents fabricants on peut avoir le meme numéro de série), l'utilisateur selectionne le bon dispositif dans la listbox et appuie sur le bouton supprimer qui doit normalement supprimer ce dispositif de la base de donnée access ( mais cela ne fonctionne pas)

L'erreur rencontrée est: " erreur de synthaxe (operateur absent) sur "Seriennummer" " (seriennummer= numero de série en allemand)

Quelqu'un sait comment traiter cette erreur?

Merci!!

Salut SebastienKanj

1) tu a un espace en trop (entre dispositif et where) dans ton instruction SQL (ça peut être important)

2) tu demandes à supprimer uniquement le numéro de série de ta table "dispositif", je ferais plutôt

basedonnee.CurrentDb.Execute "DELETE * from dispositif where Seriennummer=" & SN & ";"

Ton numéro de série n'est pas alphanumérique ?

SI oui, il faut intégrer les guillemets

basedonnee.CurrentDb.Execute "DELETE Seriennummer from dispositif where Seriennummer=""" & SN & """;"

A tester

J'ai essayé toute les possibilité possible.. et rien ne marche!

Peut etre le probleme vient du fait que j'ai

 Dim SN as string 

?

effectivement SN est un nombre

Re,

Alors peut-être

Dim SN as Long
basedonnee.CurrentDb.Execute "DELETE * from dispositif where Seriennummer=" & SN & ";"

Tu aurais moyen de nous faire passer ta ".mdb" vidée ?

A+

Je ne peux pas attacher le fichier ici mais je peux vous l'envoyer par mail !

Ok MP envoyé avec mon mail

Fichier envoyé!

Au passage j'ai une autre question : Lorsque j'ajoute un dispositif a la base de donnée, j'aimerai faire apparaitre un userform que j'ai appelé showadd qui contient une listbox qui affiche sur une ligne les caractéristique du dispositif ajouté! pour cela je voudrai selectionner la dernière ligne de la base de donnée et l'afficher dans la listbox! comment fait-on pour copier la derniere ligne de la table access sur excel ?

Re,

Voici ton fichier modifié

Pour le problème de suppression, c'est que ta variable "SN" ne contenait rien au moment de l'exécution de la requête

Pour le Showadd, il suffit de faire un MoveLast sur le recordset (voir l'USF dans le fichier)

A+

Rechercher des sujets similaires à "supprimer ligne access partir vba"