cs_manzy
Messages postés31Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention20 juin 2007
-
2 nov. 2006 à 09:41
cs_manzy
Messages postés31Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention20 juin 2007
-
2 nov. 2006 à 10:47
Bonjour,
J'ai une bdd dans laquelle je souhaite offrir la possibilité de supprimer des enregistrements. J'utilise la méthode recordset.delete. Quand l'enregistrement est le seul enregistrement de la table, j'affiche un formulaire permettant de réinserer un nouvel enregistrement, quand il y a encore des enregistrements après l'enregistement qu'on supprime, je souhaite afficher l'enregistrement suivant, et quand il n'y a plus d'enregistrements après l'enregistement qu'on supprime, mais qu'il en existe avant, je souhaite afficher l'enregistrement précedent.
Quand il n'y a qu'un seul enregistrement dans la table, tout fonctionne, mais il ne m'affiche pas les enregistements suivants ou précédents quand la table comporte plusieurs enregistrements.
Public Sub Supprimer_Click()
With Principale.Databien
Response = MsgBox("Suppression du dossier : " & Text(37).Text & " ?", vbOKCancel)
If Response = vbOK Then
.RecordSource = "SELECT * FROM bien WHERE n_dossier='" & Text(37).Text & "'"
.Recordset.Delete
Y = .Recordset.RecordCount
If Y = 0 Then
Call Nouveau_Click 'ça marche
Else
.Recordset.MoveNext
End If
end with
end sub
cs_manzy
Messages postés31Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention20 juin 2007 2 nov. 2006 à 10:47
Oui çamarche!!!! trop contente
Public Sub Supprimer_Click()
With Principale.Databien
Response = MsgBox("Suppression du dossier : " & Text(37).Text & " ?", vbOKCancel)
If Response = vbOK Then
.RecordSource = "SELECT * FROM bien WHERE n_dossier='" & Text(37).Text & "'"
.Recordset.Delete
If .Recordset.RecordCount = 0 Then
Call Nouveau_Click
Else
If .Recordset.BOF Then
.Recordset.MoveNext
End If
End If
end with
end sub
cs_manzy
Messages postés31Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention20 juin 2007 2 nov. 2006 à 09:58
J'ai remplacé le code précédent par :
With Principale.Databien
Y = .Recordset.AbsolutePosition
Response = MsgBox("Suppression du dossier : " & Text(37).Text & " ?", vbOKCancel)
If Response = vbOK Then
.RecordSource = "SELECT * FROM bien WHERE n_dossier='" & Text(37).Text & "'"
.Recordset.Delete
If Y = 0 Then
Call Nouveau_Click 'ça marche plus....
Else
.Recordset.MoveNext ' ça a l'air de marcher aussi
End If
end with
Maintenant, le Call Nouveau_Click ne fonctionne plus quand j'arrive au dernier enregistrement et en plus, lorsque je supprime plusieurs enregistrements, au bout de 2 ou 3 suppressions, j'ai un message d'erreur qui me dit que BOF ou EOF est égal à true alors q j'ai encore des données dans ma base...
Qqun voit d'ou ça peut venir?
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 2 nov. 2006 à 10:27
Salut,
As-tu essayé ceci ?
.RecordSource = "DELETE FROM bien WHERE n_dossier='" & Text(37).Text & "'"<strike>
.Recordset.Delete
</strike>
Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
cs_manzy
Messages postés31Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention20 juin 2007 2 nov. 2006 à 10:43
Oui merci, mais ça ne fonctionnait pas non plus... j'avais un message d'erreur mais je ne sais plus lequel... je crois que je suis sur la bonne voie, je teste avec un .recordset.BOF... eske ça va marcher?... suspenssss!