basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
19 avril 2007 à 23:19
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
23 avril 2007 à 02:10
Bonsoir,
je voulais prendre votre avis sur ce code qui marche pas pour la suppression d'un enregistrement d'une table dans une feuille VB6, voici le code:
Private Sub Suppression_Click()
' Chemin complet et nom de la base
strDB = "C:\pesageo.mdb"
' Nom de la table
strTable = "Véhicule"
' Ouverture connexion vers la base
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
' Optionnel : Vide la table
'oConn.Execute "DELETE FROM " & strTable
' Ouverture recordset sur la table
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open strTable, oConn, adOpenDynamic, adLockOptimistic, adCmdTable
oRS.Delete
Adodc1.Refresh
On Error Resume Next 'éviter l' erreur
oRS.MoveNext 'pour se palcer au suivant
If oRS.EOF Then oRS.MovePrevious
End Sub
mais celà engendre l'erreur suivante:
Erreur d'execution '-2147467259 (80004005)':
Impossible de supprimer dans les tables spécifiées.
Merci de m'aider
A voir également:
Suppression d'un enregistrement ACCESS à partir d'un feuile VB
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 21 avril 2007 à 23:13
tu es sur la bonne voie, il manque juste
oRS.Open "SELECT * FROM Véhicule WHERE N°véhicule = '" & Text1(0).Text & "'" _
, oConn,, adOpenDynamic, adLockOptimistic, adCmdText
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 20 avril 2007 à 02:11
je suis désolé mais ce code est correcte et efface belle et bien les enregistrements mais pas celui sélectionné et par la suite il supprime le premier meme si on sélectionne un autre
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 20 avril 2007 à 10:47
Salut,
Je n'ai pas dit que ton code ne fonctionné pas Basamir, mais il y a une chose qui est bizarre...Tu exécute donc ta requête qui efface toute ta table, avant d'avoir récupéré le champ à effacer!!!
Si tu veux effacer un champ bien précis dans ta table véhicule, il faut le préciser dans ta requête avec WHERE =....
Moi, quand je veux effacer un champ dans ma table aprés un click sur ma listview, cela donne cela :
Sql "DELETE FROM hippo WHERE N° " & Key & ""
Key(ma variable), pour moi représente le N° du champ de la clé primaire, que j'ai récupéré juste avant d'excécuter ma requête....
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 20 avril 2007 à 11:08
Salut Exploreur, desidemment on est souvent amené a se croiser en ce moment. (Pour la taille, je sais pas car les votres sont sont quand meme plus grand).
Pour le pb de basamir, je suis a l'ouest car tu parles de suppimer un champ, mais ca supprimerait pas un enregistrement plutot.
Sql "DELETE FROM hippo WHERE N° " & Key & ""
Sinon, basamir, quand tu repasse, dis nous vraiment ce que tu veux faire precisement. Supprimer un enregistrement, tous les enregistrements, ou un champ, bref ce que tu veux faire quoi.
Et n'oublie pas, quand tu as une erreur dis nous la ligne et le type d'erreur MERCI.
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 20 avril 2007 à 20:21
je ne veux pas supprimer tous les enregistrements mais seulement celui selectionné
pour la communication c'est résolu grace à un ami que j'ai connu sur vbfrance
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 20 avril 2007 à 20:36
j'ai essayé ça, mais ça n a pas marché:
Private Sub Suppression_Click()
' Chemin complet et nom de la base
strDB = "C:\pesageo.mdb"
' Nom de la table
strTable = "Véhicule"
' Ouverture connexion vers la base
Set oConn = New ADODB.Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open strDB
' Optionnel : Vide la table
'oConn.Execute "DELETE FROM " & strTable
' Ouverture recordset sur la table
Set oRS = New ADODB.Recordset
oRS.CursorLocation = adUseClient
oRS.Open "DELETE * FROM Véhicule WHERE N°véhicule = " & Text1(0).Text & "", oConn, adOpenDynamic, adLockOptimistic, adCmdTable
'strTable
oRS.Delete
Adodc1.Refresh
On Error Resume Next 'éviter l' erreur
oRS.MoveNext 'pour se palcer au suivant
If oRS.EOF Then oRS.MovePrevious
End Sub
Erreur au niveau de cette ligne:
oRS.Open "DELETE * FROM Véhicule WHERE N°véhicule = " &
Text1(0).Text & "", oConn, adOpenDynamic, adLockOptimistic,
adCmdTable