Supprimer un enregistrement dans une bdd

Résolu
cs_manzy Messages postés 31 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 20 juin 2007 - 2 nov. 2006 à 09:41
cs_manzy Messages postés 31 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 20 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

Merci!

4 réponses

cs_manzy Messages postés 31 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 20 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

Merci pour ton coup de main.
3
cs_manzy Messages postés 31 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 20 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?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
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.
0
cs_manzy Messages postés 31 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 20 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!
0
Rejoignez-nous