Access DAO recordset

cs_manu30 Messages postés 3 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 23 février 2011 - 28 avril 2008 à 15:26
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 29 avril 2008 à 08:49
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

manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008
28 avril 2008 à 15:55
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
---------
0
cs_manu30 Messages postés 3 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 23 février 2011
28 avril 2008 à 19:20
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 ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
29 avril 2008 à 08:49
du .Net 2008 qui utilise DAO, non mais des fois...

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