harvouj
Messages postés3Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention18 août 2010
-
16 août 2010 à 11:31
harvouj
Messages postés3Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention18 août 2010
-
18 août 2010 à 15:51
Bonjour,
Je suis actuellement en stage et je développe une application avec vb6. En cliquant sur un bouton de commande je veux supprimer des enregistrements de ma table selon les valeurs qui existent dans un tableau.
Je sais pas si je dois utiliser un record set ou la table.
j'ai essayé ce code mais rien ne change dans ma table
Private Sub cmd_maj_Click()
Set maj = New ADODB.Recordset
maj.Open " select * from copie ", cnx, adOpenKeyset, adLockBatchOptimistic
For i = 0 To lig - 1
If montableau(8, i) = "suppression citerne" Then
maj.MoveFirst
Do Until maj.EOF
num = maj.Fields("numero")
If (num = montableau(0, i)) Then
maj.Delete
End If
maj.MoveNext
Loop
End If
Next i
maj.Close
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 16 août 2010 à 15:53
Salut
Après avoir supprimé tes enregistrements dans le RecordSet, il faut faire un .Update afin que les données redescendent dans la table, bien sûr, avant de le refermer.
D'autres méthodes de suppression existent, comme les requètes SQL - dans ton cas, pas forcément plus pratique :
Dim maListe As String
Dim sSQL As String
Dim maVar As Long
maListe = "18,42,58,4012" ' liste des numéros comme ceux de montableau(0, i)
sSQL = "Delete From maTable Where monChamp In (" & maListe & ")"
maConnexion.Execute sSQL, maVar
MsgBox CStr(maVar) & " enregistrements supprimés."
PS : Si tu es dans le VB de Access (ce que je pense), tu ne fais pas de VB6, mais du VBA. C'est très important de choisir la bonne catégorie de question; les réponses pouvant varier.
Vala
Jack, =fr MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)