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

Macros et VBA Excel Discussion :

recourdcount affiche -1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut recourdcount affiche -1
    bonsoir à tous
    je veux avoir le nombre d'enregistrement que contient mon recirdset, alors qaund j'utilise recourdcount sans affecter les proprités suivant :adOpenKeyset, adLockOptimistic le resultat est de -1!!!!mais le probleme alors c'est que je ne sais comment insérer ces propriétés à mon recordset, voici un extrait de mon 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub CommandButton4_Click()
    Dim cn As ADODB.Connection
    Dim rsTtresfaible As ADODB.Recordset
    Dim adocommand As ADODB.Command
    Dim Fichier As String
    Dim NomFeuille As String, SQL_tersfaible As String
     
    'Définit le classeur fermé servant de base de données
    Fichier = "C:\Documents and Settings\Compaq_Propriétaire\Mes documents\saintetiennenord.xls"
     
    'Nom de la feuille dans le classeur fermé
    NomFeuille = "Feuil1"
     
    Set cn = New ADODB.Connection
     
    '--- Connection ---
    With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & Fichier & _
     ";Extended Properties=""Excel 8.0;HDR=yes"""
    .Open 
    End With
    '-----------------
    'Définit la requête.
     
    SQL_tersfaible = " SELECT   *  FROM[" & NomFeuille & "$] "
     
    Set rsTtresfaible = New ADODB.Recordset
     
    Set rsTtresfaible = cn.Execute(SQL_tersfaible)
     
    'Ecrit le résultat de la requête dans la cellule A2
    Range("A2").CopyFromRecordset rsTtresfaible
    '-----------------------------------------------------
    'récupérer le nombre d'enregistrements de rsTtresfaible
    rsTtresfaible.MoveFirst
    rsTtresfaible.MoveNext
    MsgBox "le nombre de lignes est:" & rsTtresfaible.RecordCount
    '--- Fermeture connexion ---
    cn.Close
    Set cn = Nothing
    End Sub
    merci par avance

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    et comme ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rsTtresfaible.MoveLast
     
    MsgBox "le nombre de lignes est:" & rsTtresfaible.RecordCount

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut merci
    tout d'abord merci,
    tu sais avec ta sytaxe, j'ai le message d'erreur suivant:
    l'esemble de lignes ne prend pas en charge les récupérations arriere.!!!donc je pense il faut que j'intégre les propriétés précedente ou changer carrément mon programme en utilisant ADOCOMMANDE!!!!!! franchement je ne sais pas quoi faire

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    et si tu recuperais le nombre d 'enregistrement avec la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL_tersfaible = " SELECT count(*) FROM[" & NomFeuille & "$] "

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut syntaxe???
    tu sais j'ai déjà pensé à ça mais j'arrive pas meme avec ça à cause de la sytace peut etre:§§!!!???,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim intcompteur as integer
    intcompteur = rsTtresfaible.(0)
     MsgBox "le nombre de lignes est:" & intcompteur

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut
    et pourtant qd j'essaye d'afficher le resultat de la requete sur le fichier excel il m'affiche bien le résultat. mais moi je veux l'affecter à une variable integer!!! tu voie un peu le probleme?


    tu sais j'ai dejà essayé ça et il m'affiche ce message d'erreur: nombre d'argument incorrect ou affectation de propriété incorrecte

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Peut-ëtre ça???

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub CommandButton4_Click()
        Dim cn As ADODB.Connection
        Dim rsTtresfaible As ADODB.Recordset
        Dim Fichier As String
        Dim NomFeuille As String, SQL_tersfaible As String
     
        'Définit le classeur fermé servant de base de données
        Fichier = "C:\Documents and Settings\Compaq_Propriétaire\Mes documents\saintetiennenord.xls"
     
        'Nom de la feuille dans le classeur fermé
        NomFeuille = "Feuil1"
     
        Set cn = New ADODB.Connection
     
        '--- Connection ---
        With cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & _
            ";Extended Properties=""Excel 8.0;HDR=yes"""
            .Open
        End With
        '-----------------
        'Définit la requête.
     
        SQL_tersfaible = " SELECT * FROM[" & NomFeuille & "$] "
     
        Set rsTtresfaible = New ADODB.Recordset
        With rsTtresfaible
            .ActiveConnection = cn
            .Open SQL_tersfaible, , adOpenKeyset, adLockOptimistic, adCmdTableDirect
        End With
     
     
        '-----------------------------------------------------
        'récupérer le nombre d'enregistrements de rsTtresfaible
        MsgBox "le nombre de lignes est:" & rsTtresfaible.RecordCount
     
        'Ecrit le résultat de la requête dans la cellule A2
        Range("A2").CopyFromRecordset rsTtresfaible
     
        '--- Fermeture connexion ---
        rsTtresfaible.Close
        Set rsTtresfaible = Nothing
        cn.Close
        Set cn = Nothing
    End Sub

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Alors essayes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Open Source:=SQL_tersfaible, ActiveConnection:=adOpenKeyset, LockType:=adLockOptimistic, Options:=adCmdTableDirect

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut meric
    bonjour Singular;
    je viens d'essayer la ta formule , mais il m'affiche toujours un message d'erreur:
    Argument nommé introuvable; et le cursure se pointe sur Source:=§§§!!!
    merci singular

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 171
    Par défaut merci à tous
    grace à toutes vous remarque alors j'ai utilisé la requete count, et positionnet le cirsseur à first et ça marche tres tres bien merci encore à tous; le code qui marche est le suivant:
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'récupérer le nombre d'enregistrements de rsTtresfaible
    rsTtresfaible.MoveFirst
    intcompteur = rsTtresfaible.Fields(0)
    MsgBox "le nombre de lignes est:" & intcompteur

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    C'est quand même fou qu'un appelle à Fields(0) te donne le nombre d'enregistrements dans le RecordSet!

    T'es certain que c'est bien le nombre d'enregistrements qu'il te donne?

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

Discussions similaires

  1. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31
  2. Réponses: 6
    Dernier message: 10/09/2002, 03h35
  3. Copier et afficher une copie d'ecran
    Par Bobx dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2002, 22h20
  4. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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