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

VBA Access Discussion :

Erreur de Syntaxe [AC-365]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Simple Formateur
    Inscrit en
    Juillet 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Simple Formateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2020
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Erreur de Syntaxe
    bonjour tout le monde.

    je suis débutant en Access et en VBA access.
    je développe un projet pour mon boulot.
    j'ai créée une requête qui récupère des infos pour établir des devis.
    lors de la création de l'état, je souhaite: créer l'état, et l'enregistrer directement dans le dossier du client.
    j'ai visionné les forums, trouvé pas mal d'idées et résultat je bloque sur une erreur de syntaxe. voici le code utilisé :

    merci à ceux prenant le temps de lire ce post.

    Jérôme.


    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
    Private Sub Report_Activate()
     
    Dim fichier, nomclient, datedevis, refdevis, chemin_dossier As String
     
    chemin_dossier = "\\NAS-AMS\fichiers\SAS CBP\CLIENTS\" + nomclient
     
    nomclient = Me.RAISON_SOCIALE
    datedevis = Format(Date, "yyyy_mm_dd")
    refdevis = Forms![DEVIS]![ID DEVIS]
     
    fichier = Application.CurrentProject.Path & "\\NAS-AMS\fichiers\SAS CBP\CLIENTS\" + nomclient\devis_" & nomclient & datedevis & -refdevis & ".pdf"
    DoCmd.OutputTo acOutputReport, , acFormatPDF, fichier, False
     
     
     
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    pense aux balises de code (icône # dans le menu création de messages) pour que ton code soit plus visible et lisible, de plus, cela met en action la coloration syntaxique du code du coup, cela aide à repérer les erreurs de syntaxe notamment pour ce qui doit être entre guillemets ou pas:

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Report_Activate()
     
    Dim fichier, nomclient, datedevis, refdevis, chemin_dossier As String
     
    chemin_dossier = "\\NAS-AMS\fichiers\SAS CBP\CLIENTS\" + nomclient
     
    nomclient = Me.RAISON_SOCIALE
    datedevis = Format(Date, "yyyy_mm_dd")
    refdevis = Forms![DEVIS]![ID DEVIS]
     
    fichier = Application.CurrentProject.Path & "\\NAS-AMS\fichiers\SAS CBP\CLIENTS\" + nomclient\devis_" & nomclient & datedevis & -refdevis & ".pdf"
    DoCmd.OutputTo acOutputReport, , acFormatPDF, fichier, False
     
    End Sub
    premièrement, attention à bien respecter la méthode de déclaration de variables, il faut spécifier son type pour chaque variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fichier As String, nomclient As String, datedevis As String, refdevis As String, chemin_dossier As String
    deuxièmement, mettre dans l'ordre les instructions, par exemple pour nomclient, tu déclares la variable en ligne 3, c'est bien mais ensuite, en ligne 5, tu charges une autre variable chemin_dossier avec nomclient alors que tu ne lui affectes une valeur qu'à la ligne 7.

    troisièmement, sans parler des erreurs de syntaxe contenu dans la chaine de caractères, je ne pense pas que ce que tu mets dans la variable fichier soit correct:
    Application.CurrentProject.Path va te renvoyer le chemin complet de ta base, ensuite tu concatènes avec un chemin réseau (le chemin UNC : \NAS-AMS\fichiers\SAS CBP\CLIENTS\) cela ne fonctionnera jamais, tu ne peux pas concaténer un chemin d'accès (contenant une lettre de lecteur) avec celui d'un chemin UNC.

    quatrièmement, la variable chemin_dossier n'est pas utilisée.

    et cinquièmement, c'est juste un détail mais privilégie l'utilisation de & plutôt que +, car + a tendance à les additionner si les variables sont toutes numériques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Report_Activate()
    Dim fichier As String, nomclient As String, datedevis As String, refdevis As String, chemin_dossier As String
     
    nomclient = Me.RAISON_SOCIALE
    datedevis = Format(Date, "yyyy_mm_dd")
    refdevis = Forms![DEVIS]![ID DEVIS]
    chemin_dossier = "\\NAS-AMS\fichiers\SAS CBP\CLIENTS\" & nomclient
    ' mais fichier est à mon sens incorrectement alimenté
    'fichier = Application.CurrentProject.Path & "\\NAS-AMS\fichiers\SAS CBP\CLIENTS\" & nomclient & "\devis_" & nomclient & datedevis & "-" & refdevis & ".pdf"
    '=====> essaie déjà avec ceci:
    fichier = Application.CurrentProject.Path & "\devis_" & nomclient & "-" & datedevis & "-" & refdevis & ".pdf"
    DoCmd.OutputTo acOutputReport, , acFormatPDF, fichier, False
     
    End Sub
    et enfin,attention tout de même à ce que RAISON_SOCIALE ne contienne pas de caractères interdits ou spéciaux car Windows refusera de créer le dossier et/ou le fichier:
    Nom : _0.JPG
Affichages : 113
Taille : 12,8 Ko

    normalement non, mais sait-on jamais ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Simple Formateur
    Inscrit en
    Juillet 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Simple Formateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2020
    Messages : 6
    Points : 5
    Points
    5
    Par défaut merci
    tee granddbois, merci pour tes remarques.
    je vais tacher de modifier les différents élèments.

    Jérôme

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Simple Formateur
    Inscrit en
    Juillet 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Simple Formateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2020
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Merci
    désolé tee grandbois, je n'avais pas marqué résolu à cette discussion :

    pour infos et si cela peut aider d'autres personnes, voici le bon code pour cette manipulation :

    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
    Option Compare Database
    Private Sub Report_Activate()
    Dim chemin_dossier As String
    Dim nom_client As String
    Dim fichier, datedevis, refdevis As String
     
    nom_client = Me.RAISON_SOCIALE
    chemin_dossier = "\\NAS-AMS\fichiers\AMS\CLIENTS\devis\" & nom_client
    datedevis = Format(Date, "yyyy_mm_dd")
    refdevis = Forms![DEVIS]![ID DEVIS]
     
    fichier = Application.CurrentProject.Path & "\CLIENTS\devis\devis_" & datedevis & nom_client & -refdevis & ".pdf"
    DoCmd.OutputTo acOutputReport, , acFormatPDF, fichier, True
     
    End Sub

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fichier, datedevis, refdevis As String
    tu n'as pas appliqué ma première remarque dans la déclaration de tes variables, dommage ...
    Citation Envoyé par tee_grandbois
    premièrement, attention à bien respecter la méthode de déclaration de variables, il faut spécifier son type pour chaque variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fichier As String, nomclient As String, datedevis As String, refdevis As String, chemin_dossier As String
    et pourquoi le signe moins dans & -refdevis ? caractère qui devrait probablement générer une erreur si la variable n'est pas numérique.
    le plus logique serait: & "-" & refdevis comme à l'origine

    et enfin,
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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