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 syntaxe dans concaténation de nom Access VBA [AC-2007]


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 46
    Points
    46
    Par défaut Erreur syntaxe dans concaténation de nom Access VBA
    Bonjour à tous,

    je vous expose mon problème
    j'ai une table dans lequel je met des noms de chemins d'accès

    Exemple : C:\Dossier

    et je voudrais concaténer ce champ de la forme:

    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
     
     
    Private Sub Export_enplace_excel_Click()
    Dim qd As QueryDef
    Dim sql_chemin
    Dim rs_chemin As dao.Recordset
    'id_chemin = 5 --> Echafaudage en place
    sql_chemin = "SELECT * FROM T_chemin WHERE id_chemin =5 ;"
    Set rs_chemin = CurrentDb.OpenRecordset(sql_chemin)
    If Not rs_chemin.EOF Then
    Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT T_bordereau.Numero_bordereau AS N°_BORDEREAU, T_echafaudage.Numero_echafaudage AS N°_ECHAFAUDAGE, T_bordereau.Nom_entreprise AS DEMANDEUR, T_bordereau.Nom_batiment AS SECTEUR, T_bordereau.Nom_tech_sly AS TECHNICIEN_SLV, T_echafaudage.Date_pose AS DATE_POSE, T_echafaudage.Date_demande_depose AS DEMANDE_DEPOSE FROM T_bordereau LEFT JOIN T_echafaudage ON T_bordereau.Numero_bordereau = T_echafaudage.Numero_bordereau WHERE (((T_echafaudage.Date_pose) <= Date() And (T_echafaudage.Date_pose) Is Not Null) And ((T_echafaudage.Date_demande_depose) >= Date()) And ((T_bordereau.Avenant) = 1)) Or (((T_echafaudage.Date_pose) <= Date()) And ((T_echafaudage.Date_demande_depose) >= Date())) Or (((T_echafaudage.Date_pose) <= Date()) And ((T_echafaudage.Date_demande_depose) Is Null)) ORDER BY T_echafaudage.Numero_bordereau")
     
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", "rs_chemin("nom_chemin")" & "\Echaf_en_place_" & Format(Date, "dd.mm.yyyy") & ".xls"
     
     
    DoCmd.DeleteObject acQuery, "Requete_Temporaire"
    End If
    End Sub
    le problème est que j'ai une erreur de syntaxe dans ma commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", "rs_chemin("nom_chemin")" & "\Echaf_en_place_" & Format(Date, "dd.mm.yyyy") & ".xls"

    D'avance merci de votre aide
    Blado_sap

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 46
    Points
    46
    Par défaut
    et si je fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    chemin = rs_chemin("nom_chemin")
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", "'" & chemin & "'" & "\Echaf_en_place_" & Format(Date, "dd.mm.yyyy") & ".xls"
    j'ai une erreur qui me dit impossible de créer un fichier

    alors que si je fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", "C:\Users\Blado\Desktop\Echaf_en_place_" & Format(Date, "dd.mm.yyyy") & ".xls"
    cette commande fonctionne

    merci de votre aide
    Blado_sap

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Vu que chemin est déjà un variable texte, il n'est pas nécessaire de le mettre entre "".
    Il faudrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chemin = rs_chemin("nom_chemin")
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Requete_Temporaire", chemin & "\Echaf_en_place_" & Format(Date, "dd.mm.yyyy") & ".xls"
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

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

Discussions similaires

  1. VB/ACCESS erreur syntaxe dans expression
    Par doudou57 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/08/2008, 07h17
  2. Erreur 3251 dans la base frontale Access
    Par kmarcel dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/04/2008, 13h50
  3. erreur syntaxe dans le code
    Par Daniela dans le forum Access
    Réponses: 3
    Dernier message: 18/12/2006, 12h43
  4. Erreur syntaxe dans une recherche multicritère
    Par cigale13 dans le forum Access
    Réponses: 2
    Dernier message: 12/06/2006, 09h58
  5. erreur syntaxe dans requete
    Par dom - ien moutiers dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/04/2004, 11h54

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