Access DAO recordset

Signaler
Messages postés
3
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
23 février 2011
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour,

Je realise un petit progrmme sous Visual Basic 2008 express edition avec une base de données access
Dans ce programme je donne la possibilité à l'utilisateur de supprimer un enregistrement dans la table de la base de données.
voici le programme:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Dim currentdb As Database
        'Instancie la base de données
        oDb = currentdb
        'Ouvre le curseur
        oRst = oDb.OpenRecordset("SELECT * FROM Clients WHERE NumClient=2")
        'Parcours le jeu d'enregistrement jusqu'à la fin
        While Not oRst.EOF
            'Supprime l'enregistrement
            oRst.Delete()
            'Passe au suivant
            oRst.MoveNext()
        End While
        'Libération des objets
        oRst.Close()
        oDb.Close()
        oRst = Nothing
        oDb = Nothing
    End Sub
End Class

J'ai verifier que la référence Microsoft DAO 3.6 Object library à bien été ajoutée.
Une erreur m'indique que "currentdb" n'est pas déclaré.
Pouvez vous me dire pourquoi et comment y remédier?

Merci d'avance

3 réponses

Messages postés
63
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
7 août 2008

bonjour,


je pense que sa devrai marcher comme cela


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Dim currentdb As Database
        'Instancie la base de données
        'oDb = currentdb
        'Ouvre le curseur
        oRst = CurrentDb.OpenRecordset("SELECT * FROM Clients WHERE NumClient=2")
        'Parcours le jeu d'enregistrement jusqu'à la fin
        While Not oRst.EOF
            'Supprime l'enregistrement
            oRst.Delete()
            'Passe au suivant
            oRst.MoveNext()
        End While
        'Libération des objets
        oRst.Close()
        oDb.Close()
        oRst = Nothing
        oDb = Nothing
    End Sub
End Class

---------
Manhino
---------
Messages postés
3
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
23 février 2011

Merci pour ta reponse mais j'ai ajouté le code que tu m'as dit et voici le resultat

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Dim currentdb As Database
        'Instancie la base de données
        'oDb = currentdb
        'Ouvre le curseur
        oRst = currentdb.OpenRecordset("SELECT * FROM Clients WHERE NumClient=2")
        'Parcours le jeu d'enregistrement jusqu'à la fin
        While Not oRst.EOF
            'Supprime l'enregistrement
            oRst.Delete()
            'Passe au suivant
            oRst.MoveNext()
        End While
        'Libération des objets
        oRst.Close()
        oDb.Close()
        oRst = Nothing
        oDb = Nothing
    End Sub

Avertissement    1    La variable 'currentdb' est utilisée avant qu'une valeur ne lui ait été assignée. Une exception de référence null peut se produire au moment de l'exécution.==> c'est exactement ce qui se passe lors du lancement du debeugage

pourquoi mettre un ' devant oDb = currentdb ?
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
du .Net 2008 qui utilise DAO, non mais des fois...

pourquoi ne pas utiliser ADO.NET ? (même pour Access)