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 dans la chaine de l'expression


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut Erreur de syntaxe dans la chaine de l'expression
    Bonjour,

    Suite à cet échange http://www.developpez.net/forums/d14...o/#post7856045, j'ai voulu adapter ce code de la fiche d'intervention vers la facture.

    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
    Private Sub Commande211_Click()
    On Error GoTo Err_Commande211_Click
     
    Dim NumFAC As String
    Dim stDocName As String
     
        stDocName = "FORM-FACTURE FI"
        DoCmd.OpenForm stDocName, acNormal, "", "", acAdd, acNormal
     
        Forms![FORM-FACTURE FI]![ID_Devis] = IDDevis
        Forms![FORM-FACTURE FI]![id_FI] = IDFiche
        Forms![FORM-FACTURE FI]![ID_Client] = IDClient
        Forms![FORM-FACTURE FI]![ID_Site] = IDSites
        Forms![FORM-FACTURE FI]![ID_Analaytique] = IDAnalytique
        Forms![FORM-FACTURE FI]![id_categorie] = IDCategorie
        Forms![FORM-FACTURE FI]![Objet] = Observations
        Forms![FORM-FACTURE FI]![id_tva double] = [TVA FI]
        Forms![FORM-FACTURE FI]![Texte] = Observ2
        Forms![FORM-FACTURE FI]![Type facture] = Typefacture
        Forms![FORM-FACTURE FI].Refresh
     
     
        'Récupérer le numéro de fiche intervention en cours
        NumFAC = Forms![FORM-FACTURE FI]!IDFACTUREFI
     
        monsql = "INSERT INTO [RQ-DETAIL FAC] ([ID_Facture FI], ID_FI, [ID_ARTICLE], TVA, SOUSARTICLE, [PVHT Fac], [QteDetailFac])" _
            & " SELECT [Formulaires]![FORM-FACTURE FI]![IDFACTUREFI] AS NumFAC,[RQ-DETAIL FI].id_FI," _
            & " [RQ-DETAIL FI].id_article, [RQ-DETAIL FI].TVA, [RQ-DETAIL FI].SousArticle, [RQ-DETAIL FI].[PVHT FI], [RQ-DETAIL FI].[Qte DetailFI]" _
            & " From [RQ-DETAIL FI]" _
            & " WHERE [RQ-DETAIL FI].id_FI ='" & Me.IDFiche _
            & " AND [RQ-DETAIL FI].[Select]=-1 AND [RQ-DETAIL FI].Facture=0;"
     
        DoCmd.RunSQL monsql
        monsql = "UPDATE [RQ-DETAIL FI] SET [RQ-DETAIL FI].Facture = -1" _
            & " WHERE [RQ-DETAIL FI].id_FI ='" & Me.IDFiche _
            & " AND [RQ-DETAIL FI].[Select]=-1 AND [RQ-DETAIL FI].Facture=0;"
     
         DoCmd.RunSQL monsql
     
    Exit_Commande211_Click:
        Exit Sub
     
    Err_Commande211_Click:
        MsgBox Err.Description
        Resume Exit_Commande211_Click
     
     
    End Sub
    Au niveau de la sélection c'est un peu simplifié puisque je souhaite simplement sélectionner la ligne avec IDDETAILFI et l'enregistrer dans le sous/form de la facture qui contient également ID_DETAIL FI.

    Mais j'ai le message suivant:
    Erreur de syntaxe dans la chaine de l'expression '[RQ-DETAIL FI].id_FI='14070010 AND [RQ-DETAIL FI].[SELECT]=1 AND [RQ-DETAIL FI].Facture=0;'.

    Qu'est ce que j'ai mal fait ?

    Merci pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2014
    Messages : 31
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par maringot Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        monsql = "INSERT INTO [RQ-DETAIL FAC] ([ID_Facture FI], ID_FI, [ID_ARTICLE], TVA, SOUSARTICLE, [PVHT Fac], [QteDetailFac])" _
            & " SELECT [Formulaires]![FORM-FACTURE FI]![IDFACTUREFI] AS NumFAC,[RQ-DETAIL FI].id_FI," _
            & " [RQ-DETAIL FI].id_article, [RQ-DETAIL FI].TVA, [RQ-DETAIL FI].SousArticle, [RQ-DETAIL FI].[PVHT FI], [RQ-DETAIL FI].[Qte DetailFI]" _
            & " From [RQ-DETAIL FI]" _
            & " WHERE [RQ-DETAIL FI].id_FI ='" & Me.IDFiche _
            & " AND [RQ-DETAIL FI].[Select]=-1 AND [RQ-DETAIL FI].Facture=0;"
    Salut, remplace cette partie par celle ci-dessous pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        monsql = "INSERT INTO [RQ-DETAIL FAC] ([ID_Facture FI], ID_FI, [ID_ARTICLE], TVA, SOUSARTICLE, [PVHT Fac], [QteDetailFac])" _
            & " SELECT [Formulaires]![FORM-FACTURE FI]![IDFACTUREFI] AS NumFAC,[RQ-DETAIL FI].id_FI," _
            & " [RQ-DETAIL FI].id_article, [RQ-DETAIL FI].TVA, [RQ-DETAIL FI].SousArticle, [RQ-DETAIL FI].[PVHT FI], [RQ-DETAIL FI].[Qte DetailFI]" _
            & " From [RQ-DETAIL FI]" _
            & " WHERE [RQ-DETAIL FI].id_FI ='" & Me.IDFiche _
            & "' AND [RQ-DETAIL FI].[Select]=-1 AND [RQ-DETAIL FI].Facture=0;"

    (j'ai ajouté le signe ' qui avait l'air manquant)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Votre modif fonctionne je récupère les lignes, mais les lignes ne s'affichent pas dans le détail facture, même quand je fais "enregistrer" dans la factures les lignes n'apparaissent pas. Il faut que je ferme la facture et que je l'ouvre à nouveau pour voir les lignes.

    Faudrait-il mettre un "refresh" quelque part pour que les lignes s'affichent à l'ouverture de la facture ?

  4. #4
    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,
    Il faut appliquer la méthode Requery sur le sous-formulaire en question. Un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!FormFacture.NomDusousformulaireDetail.Form.Requery
    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

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    J'ai essayé de mettre ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Open(Cancel As Integer)
    Forms![FORM_FACTURE FI].[S_FORM_DETAIL FAC].Form.Requery
    End Sub
    dans le sous formulaire (sur ouverture), dans le formulaire (à l'ouverture), à la suite du code (échange ci-dessus) à la suite du 2nd "DoCmd.RunSQL monsql" et j'ai un bug: "Erreur d'exécution 2450, impossible de trouver le formulaire FORM_FACTURE FI auquel il est fait référence dans une macro ou un code VBA".

    Donc où dois-je le mettre ?

  6. #6
    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,
    Vérifiez le nom du formulaire et sous-formulaire qu'ils correspondent bien et que le formulaire appelé dans le code est bien ouvert.
    Normalement le code se met à la fin du code ( à la ligne 39).
    Le nom du sous-formulaire est ce qui est contenu dans les propriétés Autres

    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

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Je viens de m'apercevoir d'une chose, dans tous mes formulaires je crée un bouton "opération sur enregistrement", "sauvegarder un enregistrement", texte "ENREGISTRER", terminer.

    Le simple fait de le supprimer dans le formulaire FACTURE FI et je n'ai plus de problème d'affichage dans le sous-formulaire.

    Je ne comprends pas la cause à effet car depuis mon devis que je transfère en fiche intervention, j'ai ce bouton ENREGISTRER dans ma fiche intervention et je n'ai pas ce problème d'affichage. Pourriez-vous me donner une explication ? car si je n'en ai pas besoin dans mon formulaire facture je ne le mets pas, parce que je pense que les infos que je pourrais éventuellement modifiées dans le formulaire ou le sous-formulaire facture seront prises en compte simplement en fermant le formulaire...n'est-ce pas ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Tout fonctionne parfaitement j'ai ajouter la petite ligne au code qui rafraichit le sous-formulaire de destination.

    Merci à tous pour votre aide.

    Maringot

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2006, 00h22
  2. Erreur de syntaxe dans INSERT INTO VALUES
    Par Mariboo dans le forum Access
    Réponses: 4
    Dernier message: 25/05/2006, 18h57
  3. erreur de syntaxe dans l'instructiuon insert into
    Par greg64 dans le forum Access
    Réponses: 6
    Dernier message: 13/04/2006, 14h07
  4. Erreur de syntaxe dans une requete
    Par linou dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/08/2005, 12h44
  5. [JSP]Erreur de syntaxe dans un tag <option select
    Par logica dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 03/05/2005, 14h33

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