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 :

Recordset ne me retourne rien ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut Recordset ne me retourne rien ?
    Bonjour à tous,

    Je viens vers vous, car je n'arrive pas à comprendre pourquoi mon Recorset ne contient rien du tout (valeur du recordcount : -1) alors que j'attends 2 enregistrements.

    La requête qui est dans le code ci-dessous me retourne deux enregistrements quand je la lance sous Oracle.

    Je me demande si j'ai omis quelque chose ? ...

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    Sub testselect()
    ConnexionOracle
    nni = "F54170"
    Set rs = New ADODB.Recordset
    rqst = "SELECT EXPIRATION_DT FROM SC_USR_GRP_USR WHERE TRIM(USER_ID) = UPPER('" & nni & "')"
    'rqst2 = "SELECT EXPIRATION_DT FROM SC_USR_GRP_USR"
    MsgBox rqst
     
    Set rs = cnx.Execute(rqst)
     
    'With rs
    If rs.RecordCount > 0 Then
    MsgBox "il y a des enregistrements : " & rs.RecordCount
    Else: MsgBox "il n'y a pas des enregistrements : " & rs.RecordCount
    End If
     
    'End With
    DeconnexionOracle
     
    End Sub
     
     
    Sub ConnexionOracle()
     
        'récupération info pour connexion gardian
        Open fichierGardian For Input As #2
        Line Input #2, gard
        Close #2
     
        'Définition de la chaîne de connexion
        cnx.ConnectionString = gard
     
        'Si il y a une erreur de Base De Donnees => on stoppe le traitement
        On Error GoTo ErreurBDD
     
        'Ouverture de la base de données
        If cnx.State <> adStateOpen Then
            cnx.Open
        End If
     
        Exit Sub
     
    ErreurBDD:
        If cnx.Errors.Count > 0 Then
            'Affichage des erreurs
            reponse = reponse & "Connexion Oracle Impossible : " & Chr(13) & "Erreur : " & Err.Description
            Exit Sub
        Else
            MsgBox Err.Description
        End If
     
    End Sub
     
    Sub DeconnexionOracle()
        If cnx.State = adStateOpen Then
            cnx.Close
        End If
    End Sub

    Par avance, merci pour votre aide ...

    Vincent.

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour vinzmeister,

    La variable "cnx" est-elle une variable publique ("globale") ?
    Pour moi, ajoute l'Option Explicit avant l'ensemble de tes procédures et déclare correctement l'ensemble de tes variables.

    Cela résoudra peut-être ton problème.

    Cordialement,
    Kimy

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Bonjour Kimy,

    Citation Envoyé par Kimy_Ire Voir le message
    Bonjour vinzmeister,

    La variable "cnx" est-elle une variable publique ("globale") ?
    Pour moi, ajoute l'Option Explicit avant l'ensemble de tes procédures et déclare correctement l'ensemble de tes variables.

    Cela résoudra peut-être ton problème.

    Cordialement,
    Kimy
    Oui, cnx est une variable publique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'Déclaration de la variable de connexion à la base de données
    Public cnx As New ADODB.Connection
    Elle est utilisée dans d'autres procédures qui appellent la procédure ConnexionOracle
    Et j'avais testé voir si cnx marche vraiment en modifiant le nom de ma table Select en mettant un nom bidon, j'ai eu une erreur.
    L'erreur a disparu quand je remettais le vrai nom de la table, la variable cnx marche donc bien.

    Pour tester, j'avais remplacé ma requête Select par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sysdate from dual
    qui retourne obligatoirement un résultat.

    Dans la procédure testselect(), le recorcount du recordset qui a récupéré le résultat du sysdate me retourne -1 au lieu de 1 ...

    Je ne comprends pas ce qui ne va pas ... peut-être manque-t-il du code ? ...

    Merci pour votre aide ...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set rs = CreateObject("ADODB.RecordSet")
    rs.open rqst,cnx
    If rs.eof=false Then

Discussions similaires

  1. [Java][debutant]select count(*) ne retourne rien !!
    Par Invité dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/01/2007, 11h39
  2. Fonction ne retournant rien ?
    Par bds2006 dans le forum Delphi
    Réponses: 8
    Dernier message: 05/06/2006, 14h47
  3. Erreur query ne retourne rien
    Par TeddyBEER dans le forum Outils
    Réponses: 3
    Dernier message: 28/04/2006, 15h09
  4. Si mysql ne retourne rien que faire ?
    Par pierrera dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/02/2006, 11h12
  5. SELECT qui ne retourne rien à cause d'anti-slash
    Par mikyfpc dans le forum Outils
    Réponses: 8
    Dernier message: 07/08/2005, 23h04

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