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

VBA Access Discussion :

Erreur 3251 en utilisant recordset.sort [AC-2002]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Points : 54
    Points
    54
    Par défaut Erreur 3251 en utilisant recordset.sort
    Bonjour, je me sens tout petit à devoir poser cet question, mais j'ai un problème avec un sort, voilà le 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
    19
    20
    21
    22
    23
      Dim db As Database
      Dim rs As Recordset
      Dim tmp As String, file As String
      Dim fs As Object
      Dim i As Long
     
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set db = DBEngine.Workspaces(0).OpenDatabase(dbName)
      Set rs = db.OpenRecordset(tableName)
     
     rs.Sort = "Compteur DESC" '<-- le problème est là
     
     rs.MoveFirst
      While Not rs.EOF
        If (rs!Ext) Then
          If (fs.FileExists(rs!chemin)) Then
            tmp = GenerateName(prefix, rs!Compteur)
            If (rs!chemin <> tmp) Then fs.MoveFile rs!chemin, tmp
          End If
        End If
     
        rs.MoveNext
      Wend
    je mets le sort parce que j'ai besoin d'être sûr pour la vérification et la génération des noms que le numéro soit décroissant.

    quand je ne mets pas la ligne rs.Sort = "Compteur DESC", ça va, mets si je le mets, j'ai:
    Erreur d'éxécution '3251'
    Opération non autorisée pour ce type d'objet
    Que puis-je faire ?

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Vous pouvez utiliser la propriété Sort avec des objets Recordset de type instantané ou feuille de réponse dynamique.
    En ouvrant le curseur en opendynaset ça devrait passer. Là par défaut, il doit être en table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = db.OpenRecordset(tableName,dbOpenDynaset)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = DBEngine.Workspaces(0).OpenDatabase(dbName)
    Set Db=currentdb() c'est pas plus zoli ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 62
    Points : 54
    Points
    54
    Par défaut
    effectivement le fait d'ajouter "dbOpenDynaset" en argument et c'est IMPEC, merci beacoup !!

    Set Db=currentdb() c'est pas plus zoli ?
    ben c'est pas possible, dbName c'est des vieilles données à part de mon appli.

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    ben c'est pas possible, dbName c'est des vieilles données à part de mon appli.
    J'avais pas vu le dbname

    Pour info, y a aussi les methodes FindX qui demande aussi à etre en dynaset

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

Discussions similaires

  1. ADODB recordset.sort erreur'3251'
    Par zit_zit dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/06/2009, 15h08
  2. erreur lorsque j'utilise le module session
    Par vbcasimir dans le forum Modules
    Réponses: 13
    Dernier message: 14/10/2005, 13h41
  3. erreur VBA dans un recordset
    Par rapace dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 15h52
  4. Retour d'erreur avec l'utilisation de la commande For en VBS
    Par genialk2000 dans le forum VBScript
    Réponses: 3
    Dernier message: 30/03/2005, 18h45
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 21h39

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