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

Access Discussion :

Erreur dans ma fonction pour créer mes rapports rtf


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Erreur dans ma fonction pour créer mes rapports rtf
    Voici ma fonction :
    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
    Private Sub Commande4_Click()
       Dim dbs As DAO.Database
       Dim rst As DAO.Recordset
       Dim qdf As DAO.QueryDef
       Dim BaseSQL As String
       Dim strSQL As String
       Set dbs = CurrentDb
       Set rst = dbs.OpenRecordset("SELECT DISTINCT [Dealer/Distributor Number] FROM Query_Active_Dealer_List_Update")
       Set qdf = dbs.QueryDefs("Query_Active_Dealer_List_Update")
       BaseSQL = qdf.SQL
       With rst
           Do Until .EOF
              strSQL = Left(BaseSQL, Len(BaseSQL) - 3) & " WHERE [Dealer/Distributor Number] =" & ![Dealer/Distributor Number]
              qdf.SQL = strSQL
    DoCmd.OutputTo acOutputReport, "Main_Report", "RichTextFormat", "C:\Documents and Settings\larocma\Dealer_Scorecards\" & ![Dealer/Distributor Number] & ".doc"
     
              .MoveNext
          Loop
          .Close
       End With
       qdf.SQL = BaseSQL
       Set qdf = Nothing
       Set rst = Nothing
       Set dbs = Nothing
     
    End Sub

    Le problème se situe dans la ligne strSQL = Left(BaseSQL, Len(BaseSQL) - 3) & " WHERE [Dealer/Distributor Number] =" & ![Dealer/Distributor Number]

    Si je laisse ![Dealer/Distributor Number] comme ca j'obtient une erreur et aucun rapport n'est généré. Par contre, si je met "[Dealer/Distributor Number]" comme ca en paramètre et que j'entre manuellement les numeros de dealer, j'obtient des fichiers correctement.

    Quelqu'un peut m'aider à résoudre ce probleme ?

    Max

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    Tu peux donner plus d'infos sur les objets Query_Active_Dealer_List_Update et Main_Report?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par hemos
    Le problème se situe dans la ligne strSQL = Left(BaseSQL, Len(BaseSQL) - 3) & " WHERE [Dealer/Distributor Number] =" & ![Dealer/Distributor Number]
    Est-il possible qu'il y ai des valeurs nulles dans ![Dealer/Distributor Number]?

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Il n'y a pas de dealer_id nul puisque j'affiche seulement que les valeurs non nulles. Le Main_Report est un rapport comprenant un ensemble de sous-rapport qui est regroupé selon le dealer/distributor number pour que je puisse avoir un rapport d'avancement par dealer.

    Pour ce qui est de la requete associée à la table elle comprend toutes les coordonnées du dealer sur chaque colonnne.

    Max

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    As-tu fait un Debug.print de strSQL après son affectation ?

    strSQL = Left(BaseSQL, Len(BaseSQL) - 3) & " WHERE [Dealer/Distributor Number] =" & ![Dealer/Distributor Number]
    qdf.SQL = strSQL
    Moi, j'essaierais "rst" devant "![Dealer/Distributor Number]"
    Espérant aider,
    "Always look at the bright side of life." Monty Python.

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé un autre code mais maintenant j'obtient une erreur différente et je ne connais pas sa provenance.

    Voici le code modifié :
    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
     
    Private Sub Commande4_Click() 
     
    Dim dbs As DAO.Database 
    Dim rst As DAO.Recordset 
    Dim qdf As DAO.QueryDef 
    Dim BaseSQL As String 
    Dim strSQL As String 
    Set dbs = CurrentDb 
    Set rst = dbs.OpenRecordset("SELECT DISTINCT [Dealer/Distributor Number] FROM Query_Active_Dealer_List_Update") 
    Set qdf = dbs.QueryDefs("Query_Active_Dealer_List_Update") 
    BaseSQL = qdf.SQL 
    With rst 
    Do Until .EOF 
    strSQL = Left(BaseSQL, Len(BaseSQL) - 3) & " WHERE [Dealer/Distributor Number] = '" & ![Dealer/Distributor Number] & "';" 
    qdf.SQL = strSQL 
    DoCmd.OutputTo acOutputReport, "Main_Report", "RichTextFormat", "C:\Documents and Settings\larocma\Dealer_Scorecards\" & ![Dealer/Distributor Number] & ".doc" 
     
    .MoveNext 
    Loop 
    .Close 
    End With 
    qdf.SQL = BaseSQL 
    Set qdf = Nothing 
    Set rst = Nothing 
    Set dbs = Nothing 
     
    End Sub
    Erreur d'exécution '3126': Mise entre crochets non valide du nom '[Dealer/Distributor Nub
    WHERE [Dealer/Distributor Number]'

  7. #7
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Si vous voulez jeter un coup d'oeil j'ai uploadé mon travail sur www.mlaroche.com/scorecards/scorecards.zip

    Le bouton est sur le Formulaire1

    Maxime

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    Sur quelle ligne, cette erreur?

  9. #9
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    le champ [Dealer/Distributor Number] est de quel type ??? :
    dans la rq du debut, tu le traites comme un numérique
    dans ton second traitement , " comme du texte (càd avec des ' de part et d'autre)
    "Always look at the bright side of life." Monty Python.

  10. #10
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Le champ dans la table est en format texte.

    Max

  11. #11
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Tous les champs de Query_Active_Dealer_List_Update sont en format texte.

    Max

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/07/2011, 14h33
  2. Erreur dans ma fonction smileys
    Par AlphonseBrown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/03/2006, 19h54
  3. [10 - XP] Faire un "start" pour créer mes tables
    Par noixennoc dans le forum Oracle
    Réponses: 8
    Dernier message: 30/01/2006, 23h56
  4. Erreur dans une fonction
    Par dark_vidor dans le forum Langage
    Réponses: 6
    Dernier message: 15/01/2006, 10h23
  5. Réponses: 2
    Dernier message: 11/08/2004, 15h01

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