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 de syntaxe


Sujet :

Access

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut Erreur de syntaxe
    Bonjour,

    Le champ texte "TempsPremier" qui reçoit la valeur 10' 25" 2 me crée un problème de syntaxe.

    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & Chr(34) & lstr_TempsPremier & Chr(34) & ") ;"
    Nota: Si j'écris 25" avec deux apostrophes mon insert into fonctionne, mais pas avec des guillemets.

    Merci pour votre aide

    Salutations

    Jacques

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Bien disons que si j'avais été confronté à ce problème, j'aurais rédigé mes valeurs de temps comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
    Dim strTimeA$
    Dim strTimeB$
      'Avec le caractère 180
      strTimeA = Chr(34) & "10´ 25´´ 2" & Chr(34)
      'Avec le caractère 39
      strTimeB = Chr(34) & "10' 25'' 2" & Chr(34)
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir Argy

    Merci pour ta réponse, mais je n’arrive toujours pas à régler le problème.

    Voici comment fonctionne mon code actuellement, pour simplifier je n’ai gardé que deux champs.


    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
    Dim lstr_TempsPremier As String
    Dim lstr_Champ2 As String
     
    lstr_TempsPremier = IIf(IsNull(txtTempsPremier.Value), "", txtTempsPremier.Value)
    lstr_Champ2 = IIf(IsNull(txtChamp2.Value), "", txtChamp2.Value)
     
    '--- Vérifie si toutes les valeurs sont saisies '
          ifTrim(lstr_TempsPremier)  = "" Or Trim(lstr_Champ2 )= "" Then
          MsgBox "Il manque des informations"
          Exit Sub
    End If
     
    '--Insert les valeurs dans la tbl
     
    DoCmd.RunSQL "INSERT INTO [Table1]( TempsPremier, Champ2)" & _
    " values("& Chr(34) & lstr_TempsPremier & Chr(34) & "," &  lstr_Champ2 & ") ;"
     
     Set qdf = CurrentDb.QueryDefs("qdfgénérale")
    Comment modifier ce code en fonction de tes remarques citées plus haut.

    Salutations

    Jacques

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bonjour,

    essaye de remplacer le guillemet par deux guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & Chr(34) & replace(lstr_TempsPremier,"""","""""") & Chr(34) & ") ;"

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    ca serait pas plutôt ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & Chr(34) & replace(lstr_TempsPremier,"'","''") & Chr(34) & ") ;"
    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Citation Envoyé par User
    ca serait pas plutôt ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & Chr(34) & replace(lstr_TempsPremier,"'","''") & Chr(34) & ") ;"
    @+
    je ne pense pas, il n'y pas à priori de problème avec les guillemets simples.

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir Arkham

    Merci pour ton aide, ça marche parfaitement.

    Salutations

    Jacques

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir User

    Merci pour ta réponse, Mon problème était uniquuement avec les guillements doubles

    Salutations

    Jacques

  9. #9
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bon,

    C'est au niveau des données que la modification doit être effectuée.
    Donc au lieu d'utiliser un jeu de guillemets pour tes temps utilises 2 fois le caractère 39 ou 1 fois le caractère 180 en lieu et place des guillemets qui sont réservés au occurence de type String.
    Tu pourras alors chercher tes temps comme tu l'as écris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Chr(34) & lstr_TempsPremier & Chr(34) & ") ;"
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonjour Argy

    Merci pour ta réponse.

    Salutations

    Jacques

+ 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