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
Je vous remercie.
A voir également:
Access vba parcourir les enregistrements d'une table
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)