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 :

Erreur Objet non valide sur requete SQL


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut Erreur Objet non valide sur requete SQL
    Bonjour à tous,

    depuis mon fichier Excel en VBA j'interroge ma base sql (sqlserver2008r2). il me retourne l'erreur suivante :

    Nom d'objet 'F_COMPTEG' non valide

    Cela correspond au nom d'une table dans ma requete.

    si j’exécute la requête directement dans sqlmanagement aucun problème la requête retourne bien.

    '------------------------

    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
     '--MsgBox (valcel)
                Dim rsBat3 As ADODB.Recordset
                Set rsBat3 = New ADODB.Recordset
    strConn = "PROVIDER=SQLOLEDB;"
    strConn = strConn & "DATA SOURCE=10.11.7.73;UID=sa;PWD=tenotua"
    DerniereLigne3 = Worksheets("CFG").Range("V1000").End(xlUp).Row
     
     For i = 2 To DerniereLigne3
            '-MsgBox i
     
                   Set f3 = fso.OpenTextFile(chemin & "\SQL\sql-sage-tresorie.sql", ForReading)
                    une_variable3 = Replace(f3.ReadAll, "nom_compta_sql", Worksheets("CFG").Range("w" & i).Value)
                    une_variable3 = Replace(une_variable3, "libelle_treso", Worksheets("CFG").Range("x" & i).Value)
                    une_variable3 = Replace(une_variable3, "datedebut", Format(valceldebut, "yyyymmdd"))
                    une_variable3 = Replace(une_variable3, "datefin", Format(valcel, "yyyymmdd"))
                    une_variable3 = Replace(une_variable3, "date_treso", valcel)
                     une_variable3 = Replace(une_variable3, "societe_treso", Worksheets("CFG").Range("v" & i).Value)
                    une_variable3 = Replace(une_variable3, "num_code_client", Worksheets("CFG").Range("y" & i).Value)
                   f3.Close
     
                    Set f23 = fso.OpenTextFile(chemin & "\" & Worksheets("CFG").Range("w" & i).Value & "-" & Worksheets("CFG").Range("x" & i).Value & ".txt", 2, True)
       f23.write (une_variable3)
       f23.Close
      With rsBat3
            .ActiveConnection = cnBat
              .Open une_variable3
               Do While Not rsBat3.EOF
                DerniereLigne = Worksheets("SQL-tresorerie").Range("A10000").End(xlUp).Row + 1
               'MsgBox (DerniereLigne)
                Worksheets("SQL-tresorerie").Range("A" & DerniereLigne).CopyFromRecordset rsBat3
                Loop
                .Close
                 End With
     
        Next
    La requete SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 'societe_treso' as soc,'libelle_treso' as lib,'date_treso' as datef,
    [F_ECRITUREC].CG_NUM,
    [F_COMPTEG].CG_Intitule as CG_Intitule,
    CAST (SUM(CASE EC_Sens 
           WHEN 1 THEN EC_Montant*-1
           ELSE EC_Montant END) AS decimal (10,2)) as montant
    FROM [nom_compta_sql].[dbo].[F_ECRITUREC] 
    INNER JOIN [F_COMPTEG] on [F_COMPTEG].CG_NUM=[F_ECRITUREC].CG_NUM 
    WHERE JM_Date>= 'datedebut' and JM_Date<= 'datefin'
    and [F_ECRITUREC].CG_NUM like 'num_code_client'
    GROUP BY [F_ECRITUREC].CG_NUM,[F_COMPTEG].CG_Intitule
    Je comprend pas qu'elle est le problème ? Ou est-je commis une erreur ?

    Merci d'avance pour votre aide

    guigui69

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Si ta requête fonction sur SQL manager, elle fonctionne en vba mais pas sous cette forme d'écriture!

    Mais pour t'aider il faudrait que tu précise le conditions d'utilisation de cette requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sql="Select * from table"
    Set rs=connexion.execute(Sql)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Bonjour dysorthographie,

    je n'ai pas compris ceci:

    Mais pour t'aider il faudrait que tu précise le conditions d'utilisation de cette requête.


    Sql="Select * from table"
    Set rs=connexion.execute(Sql)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    comment utilise tu ta requête ? dans une macro VBA? ou dans un objet Connexion d'Excel?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Bonjour,

    Dans un macro VBA
    j'ai essayé en mettant la requete SQL sur une ligne dans la macro VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     .Open "SELECT 'MONTCHAPET S.A.S' as soc,'Tresorerie' as lib,'31/07/2016' as datef,[F_ECRITUREC].CG_NUM,fc.CG_Intitule as CG_Intitule,CAST (SUM(CASE EC_Sens  WHEN 1 THEN EC_Montant*-1       ELSE EC_Montant END) AS decimal (10,2)) as montant FROM [MONTCHAPET].[dbo].[F_ECRITUREC] INNER JOIN [F_COMPTEG] as fc on fc.CG_NUM=[F_ECRITUREC].CG_NUM WHERE JM_Date>= '20160101' and JM_Date<= '20160731' and [F_ECRITUREC].CG_NUM like '512%' GROUP BY [F_ECRITUREC].CG_NUM,fc.CG_Intitule"
    il bloque toujours sur ceci: [F_COMPTEG] non objet non valide

Discussions similaires

  1. Exécuter un test sur le message d'erreur "référence non valide"
    Par frisou65 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2008, 09h50
  2. Réponses: 10
    Dernier message: 23/10/2007, 14h02
  3. [SQL] Erreur repetitive sur requete SQL (Count et Sum)
    Par hools dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2007, 11h57
  4. Erreur, argument non valide sur IE
    Par Babssss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2007, 07h08
  5. erreur sur requete sql
    Par boss_gama dans le forum ASP
    Réponses: 1
    Dernier message: 31/07/2006, 13h39

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