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 Update


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 57
    Points : 18
    Points
    18
    Par défaut Erreur syntaxe Update
    Salut tout le monde,

    voila j'ai ce code :

    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
    Set DSociete = Editialis.OpenRecordset("Select NomDuProspectHA,Date, Heure, Type From HistoOpti")
    DSociete.MoveFirst
    Do Until DSociete.EOF
     
        TxtSoc = DSociete("NomDuProspectHA")
    'Concatene les différents enregistrement
    Resultat = ""
     
     
    Resultat = DSociete.Fields(1).Value & " " & DSociete.Fields(2).Value & " " & DSociete.Fields(3).Value
     
     
     
    'DoCmd.SetWarnings False
     
            DoCmd.RunSQL ("Update HistoOpti set Note = '" & Resultat & "' where NomDuProspectHA='" & TxtSoc & "'")
     
            DSociete.MoveNext
     
     
     
    Loop
    Et j'ai un message d'erreur 'Erreur de syntaxe dans l'instruction Update' !! Je comprends pas pourquoi!! Alors soit je suis miro et je vois pas l'erreur toute bête, soit ya une autre facon de faire !!
    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 180
    Points : 107
    Points
    107
    Par défaut
    Tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print "Update HistoOpti set Note = '" & Resultat & "' where NomDuProspectHA='" & TxtSoc & "'"
    juste avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL ("Update HistoOpti set Note = '" & Resultat & "' where NomDuProspectHA='" & TxtSoc & "'")
    Puis tu met un breakpoint dans ton code sur l'instruction debug et que tu exécute en mode pas à pas (touche F8)

    Ce qui te permet de voir la valeur de ta String

    Il t affiche quoi?

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 180
    Points : 107
    Points
    107
    Par défaut
    Ma remarque précédente est loin d'etre inutile vu qu'elle t aprendra peut etre a utiliser le mode debug
    Mais sinon ton erreur ne provient t elle pas simplement des , manquantes dans l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resultat = DSociete.Fields(1).Value & " " & DSociete.Fields(2).Value & " " & DSociete.Fields(3).Value
    qui devrait peut etre plutot etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resultat = DSociete.Fields(1).Value & ", " & DSociete.Fields(2).Value & ", " & DSociete.Fields(3).Value
    Si il s'agit de string il te faut également des quotes

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 57
    Points : 18
    Points
    18
    Par défaut
    oui résultat est bien une valeur de type string mais si je mets des espaces dans le code c'est juste pour que quand il concatène il mette des espaces et pas des ','.
    Sinon pour le debug.print, ca ne fait rien de plus !!
    Dans tous les cas, il récupère bien les valeurs alors je vois pas quel est le problème de syntaxe :s

    Voila le code en entier au cas ou ca vienne d'ailleurs :
    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
    Option Compare Database
     
    Public Function TacheBis() As String
     
    Dim Editialis As Database, DSociete As DAO.Recordset
    Dim concat, resultat As String, TxtDate, TxtHeure, TxtSoc, TxtType As Variant
    Set Editialis = Application.CurrentDb()
     
     
     
    Set DSociete = Editialis.OpenRecordset("Select NomDuProspectHA,Date, Heure, Type From HistoOpti")
    DSociete.MoveFirst
    Do Until DSociete.EOF
     
        TxtSoc = DSociete("NomDuProspectHA")
        TxtDate = DSociete("Date")
        TxtHeure = DSociete("Heure")
        TxtType = DSociete("Type")
     
    'Concatene les différents enregistrement
    resultat = ""
    resultat = DSociete.Fields(1).Value & " " & DSociete.Fields(2).Value & " " & DSociete.Fields(3).Value
              Debug.Print "Update HistoOpti set Note = '" & resultat & "' where NomDuProspectHA='" & TxtSoc & "'"
     
    'DoCmd.SetWarnings False
            DoCmd.RunSQL ("Update HistoOpti set Note = '" & resultat & "' where NomDuProspectHA='" & TxtSoc & "' and Date='" & TxtDate & "' and Heure='" & TxtHeure & "'")
            DSociete.MoveNext
     
     
     
    Loop
     
    'libere la mémoire
     
    Set DSociete = Nothing
     
     
    End Function

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 57
    Points : 18
    Points
    18
    Par défaut
    Ja'i tout mis dans une seule requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            DoCmd.RunSQL "Update HistoOpti set Note = '" & DSociete.Fields(1).Value & " " & DSociete.Fields(2).Value & " " & DSociete.Fields(3).Value & "'  where NomDuProspectHA='" & TxtSoc & "' and Date='" & TxtDate & "' and Heure='" & TxtHeure & "'"
    mais ca ne marche pas non plus !! Quand je place mon curseur sur '& TxtSoc &' par exemple, j'ai la bonne valeur, et les autres c'est pareil !! Donc je vois vraiment pas, surtout que cette syntaxe je l'utilise dans un autre code et que cela fonctionne très bien!!!

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 57
    Points : 18
    Points
    18
    Par défaut
    Bon ben je me suis débrouillée autrement, j'ai carrément créé une table temporaire si ca intéresse quelqu'un :

    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
    Option Compare Database
     
    Public Function TacheBis() As String
     
    Dim Editialis As Database, DSociete As DAO.Recordset
    Dim resultat, TxtDate, TxtHeure, TxtSoc, TxtType, TxtCom As String
    Set Editialis = Application.CurrentDb()
    Dim TblTemp As DAO.Recordset
    Set TblTemp = Editialis.OpenRecordset("Temp2", dbOpenDynaset)
     
     
    Set DSociete = Editialis.OpenRecordset("Select NomDuProspectHA,Date, Heure, Type, NomCommercial,Nom,Prenom From HistoOpti")
    DSociete.MoveFirst
    Do Until DSociete.EOF
     
        TxtSoc = DSociete("NomDuProspectHA")
        TxtDate = DSociete("Date")
        TxtHeure = DSociete("Heure")
        TxtType = DSociete("Type")
        TxtCom = DSociete("NomCommercial")
        TxtNom = DSociete("Nom")
        TxtPrenom = DSociete("Prenom")
     
    'Concatene les différents enregistrement
    resultat = ""
    resultat = DSociete.Fields(1).Value & " " & DSociete.Fields(2).Value & " " & DSociete.Fields(3).Value & " " & DSociete.Fields(4).Value
     
            DSociete.MoveNext
     
    TblTemp.AddNew
    TblTemp("Societe") = TxtSoc
    TblTemp("Nom") = TxtNom
    TblTemp("Prenom") = TxtPrenom
    TblTemp("Note") = resultat
    TblTemp.Update
     
    Loop
     
    'libere la mémoire
     
    Set DSociete = Nothing
     
     
    End Function
    mais bon si a l'avenir quelqu'un trouve une réponse, je sui preneuse!!

    Merci ciao
    ++

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2009, 18h39
  2. Erreur Syntaxe Update
    Par Spanish_ dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 29/02/2008, 15h48
  3. [access 2003] erreur d syntaxe update
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/01/2008, 05h51
  4. Réponses: 9
    Dernier message: 12/07/2006, 13h42
  5. Syntaxe Update : erreur
    Par Mariboo dans le forum Access
    Réponses: 6
    Dernier message: 09/06/2006, 18h46

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