IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Erreur recordset rst.movelast()


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut Erreur recordset rst.movelast()
    Bonjour,

    J'ai une erreur dans mon programme, j'ouvre une connection avec un BDD Access pour pouvoir y lire les données.
    Et lorsque que je fais rst.movelast() il me retourne le message d'erreur suivant : "L'ensemble de lignes ne prend pas en charge les récupérations arrières"

    Et je n'ai aucune idée de ce que cela signifie. Quelqu'un peut m'aider ?

    extrait du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim cnx As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim intNbRow As Integer
     
    Try
                'connexion à la BDD
                cnx.Provider = "Microsoft.Ace.Oledb.12.0"
                cnx.ConnectionString = "C:\Users\vr\Documents\Visual Studio 2010\Projects\ExcelWorkbook1\Database11.accdb"
                cnx.Open()
                strReq = "SELECT N°, date_de_creation, createur, nb_de_page FROM comptes_rendus"
                rst.Open(strReq, cnx)
                rst.MoveLast()  'ligne qui plante!!
                intNbRow = rst.Fields(1).Value
     
    Catch ex As Exception
                MsgBox("Erreur ; " & ex.Message)
    End Try

  2. #2
    Membre éclairé
    Inscrit en
    Février 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 37
    Par défaut
    salut,

    tu as un problème de curseur sur ton recordset par défaut le curseur est défini en adOpenForwardOnly et donc tu ne peux faire q'un movenext.
    Modifie ton code comme suit et ça règlera ton problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                cnx.Open()
                strReq = "SELECT N°, date_de_creation, createur, nb_de_page FROM comptes_rendus"
                rst.CursorType = adOpenDynamic
                rst.Open(strReq, cnx)
    et un conseil avant de faire ton movelast test si ton recordset n'est pas vide sinon plantage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not rst.BOF and not rst.eof then rst.MoveLast()

  3. #3
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Super, c'était ça. Maintenant ça marche.
    Merci bien.


    J'ai juste une syntaxe un peu différente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst.CursorType = ADODB.CursorTypeEnum.adOpenDynamic
    Si qqun sait pourquoi, je suis curieux de savoir.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 37
    Par défaut
    cela revient au même juste que dans mon code, j'ai considéré que tu avais importé l'espace de nom ADODB

    adOpenDynamic fait partie de l'énumération CursorTypeEnum inclus dans l'assembly ADODB

    en espérant avoir répondu clairement à ta question

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur Recordset.update sur DAO VBA avec SQLServer
    Par rlapt dans le forum Général VBA
    Réponses: 1
    Dernier message: 27/02/2012, 11h06
  2. [A-00] erreur Recordset
    Par Slici dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/03/2009, 20h28
  3. erreur lors de l'ouverture de 2 recordset
    Par gup dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/09/2005, 17h16
  4. gestion d'erreur et fermeture recordset
    Par yorra dans le forum Access
    Réponses: 4
    Dernier message: 14/11/2004, 11h38
  5. recordset et erreur 80040e10
    Par Mad666 dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2004, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo