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


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 26
    Points : 11
    Points
    11
    Par défaut Erreur syntaxe update
    Bonjour à tous,

    Alors voilà j'ai un petit problème de syntaxe lors de ma requête update et honnêtement je ne vois pas où est l'erreur.
    voilà le code qui ne veut pas fonctionner .

    merci d'avance pour votre réponse et je vous souhaite une bonne journée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      insertSQL = "UPDATE LBSA_CCTRL_Cartes_Layout SET id_att = ' " & Me.choix_mesures & " ', " & _
                               "carte_lay_nom = '" & Me.nom_form & " '," & _
                               "carte_Lay_ima= '" & Me.image_1 & " '," & _
                               "carte_Lay_plan= '" & Me.plan_1 & "'," & _
                               "carte_Lay_lien_Instr = '" & Me.instru_1 & "'," & _
                               "carte_lay_champ_visuel = " & champ_visuel & "," & _
                               "carte_lay_champ_remarque = '" & Me.remarque & "'," & _
                               "carte_Lay_num_importance = " & mes_import & "," & _
                               "carte_Lay_position = " & pos_lay & " " & _
                               "WHERE id =  " & id_lay & " ;"
     
                               Debug.Print insertSQL
                              DoCmd.RunSQL insertSQL
    et dans le debug j'ai ceci
    UPDATE LBSA_CCTRL_Cartes_Layout SET id_att = ' GAT_FLOAT_14 ', carte_lay_nom = 'dsfn ',carte_Lay_ima= ' ',carte_Lay_plan= '',carte_Lay_lien_Instr = '',carte_lay_champ_visuel = ,carte_lay_champ_remarque = '',carte_Lay_num_importance = ,carte_Lay_position = 1 WHERE id = 3 ;
    Si jamais si il y a = sans rien c'est car c'est du numérique mais la il est null et dans ma table j'ai accepté les valeurs null donc je ne pense pas que c'est celà.
    d'avance je vous remercie pour votre réponse

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Bonjour,
    Quand la valeur est nulle il faut lui dire!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     carte_Lay_ima=null,arte_lay_nom = null
    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
    Sub test()
    Debug.Print TrouveTypeSql("")
    Debug.Print TrouveTypeSql(strFileName)
    Debug.Print TrouveTypeSql("toto")
    Debug.Print TrouveTypeSql(Date)
    Debug.Print TrouveTypeSql(Now)
    Debug.Print TrouveTypeSql(10.5)
     
    SQL= "INSERT INTO Files (Path, File, DateLastModified) VALUES (" & TrouveTypeSql(strFilePath) & "," & TrouveTypeSql(strFileName) & "," & TrouveTypeSql(dtDateLastModified) & ")"
    Debug.Print SQL
    cnn.Execute  SQL
    End Sub
     
     
    Function TrouveTypeSql(V)
    TrouveTypeSql = Trim("" & V)
    If Trim("" & TrouveTypeSql) = "" Then TrouveTypeSql = "Null": Exit Function
    If IsDate(TrouveTypeSql) = True And InStr(TrouveTypeSql, "/") <> 0 And InStr(TrouveTypeSql, ":") <> 0 Then TrouveTypeSql = "#" & Format(TrouveTypeSql, "yyyy-mm-dd hh:mm") & "#": Exit Function
    If IsDate(TrouveTypeSql) = True And InStr(TrouveTypeSql, "/") <> 0 Then TrouveTypeSql = "#" & Format(TrouveTypeSql, "yyyy-mm-dd") & "#": Exit Function
    If IsNumeric(Replace(TrouveTypeSql, ".", ",")) = True Then TrouveTypeSql = Replace(TrouveTypeSql, ",", "."): Exit Function
    TrouveTypeSql = "'" & Replace(TrouveTypeSql, "'", "''") & "'"
    End Function

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je pense que l'erreur viendrait plutot de ces null.
    Le plus simple serait de ne pas accepter les Null et de mettre 0 comme valeur par défaut dans la table En utilisant la fonction nz() au niveau de tes champs numériques tu n'aurais plus d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    insertSQL = "UPDATE LBSA_CCTRL_Cartes_Layout SET id_att = ' " & Me.choix_mesures & " ', " & _
                               "carte_lay_nom = '" & Me.nom_form & " '," & _
                               "carte_Lay_ima= '" & Me.image_1 & " '," & _
                               "carte_Lay_plan= '" & Me.plan_1 & "'," & _
                               "carte_Lay_lien_Instr = '" & Me.instru_1 & "'," & _
                               "carte_lay_champ_visuel = " & nz(champ_visuel,0) & "," & _
                               "carte_lay_champ_remarque = '" & Me.remarque & "'," & _
                               "carte_Lay_num_importance = " & nz(mes_import,0) & "," & _
                               "carte_Lay_position = " & nz(pos_lay,0) & " " & _
                               "WHERE id =  " & id_lay & " ;"
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    en fait si je [FONT=Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif]concatène[/FONT] un texte avec un valeur nulle ça revient à concaténer avec rien on le voit bien avec carte_Lay_ima= ' '.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "id_att =" & TrouveTypeSql(Me.choix_mesures) & ",carte_Lay_ima= " & TrouveTypeSql(Me.image_1) & ",carte_Lay_num_importance =" & TrouveTypeSql(mes_import) & ",carte_Lay_position = " & TrouveTypeSql(pos_lay) & " "
    retournera "id_att = 'GAT_FLOAT_14',carte_Lay_ima=null,carte_Lay_num_importance =null,carte_Lay_position =1 " ce qui est conforme à sql!

  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,
    en fait si je concatène un texte avec un valeur nulle ça revient à concaténer avec rien on le voit bien avec carte_Lay_ima= ' '.
    oui, encore faut-il le faire, car ici ce n'est pas le cas:

    Nom : _0.JPG
Affichages : 158
Taille : 44,3 Ko

    or, cette syntaxe: Champ= provoque une erreur, il faut donc bien utiliser Nz(), comme te l'a préconisé Jeannot45
    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 ?

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    or, cette syntaxe: Champ= provoque une erreur, il faut donc bien utiliser Nz(), comme te l'a préconisé Jeannot45
    oui et si il s'agissait d'une date on donnera la date du jour par défaut,

    non on met null!

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 26
    Points : 11
    Points
    11
    Par défaut merci
    Bonjour à tous,

    Merci d'avoir répondu si rapidement c'était en effet le nz( ) qui manquait
    Merci a tous pour votre aide et une bonne journée

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

Discussions similaires

  1. Erreur Syntaxe Update
    Par Spanish_ dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 29/02/2008, 15h48
  2. [access 2003] erreur d syntaxe update
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/01/2008, 05h51
  3. Erreur syntaxe Update
    Par amel123456789 dans le forum Access
    Réponses: 5
    Dernier message: 18/09/2006, 17h47
  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