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

Requêtes et SQL. Discussion :

Mise en oeuvre de UPDATE dans du code sql


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Par défaut Mise en oeuvre de UPDATE dans du code sql
    bonjour,

    je vous soumets un petit problème concernant la mise à jour d'un champ en utilisant SQL (UPDATE)
    J'ai créé un formulaire à partir d'une table et je voudrais mettre à jour un champ CATEGORY, en fonction du contenu d'un autre champ CLASS_ERP
    Pour cela j’utilise un select case pour gérer les différents cas afin de déterminer la valeur à mettre à jour.
    Le select case fonctionne mais pas la mise à jour car j'ai un message d'erreur
    ERREUR DE SYNTAXE (OPERATEUR ABSENT) DANS L'EXPRESSION 40006304;NAT_GES='65'
    Mais Lorsque je remplace les valeurs numériques par des lettres A, B,..... cela fonctionne bien

    Ou peut se trouver mon erreur ?

    merci

    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
    Private Sub NAT_GES_GotFocus()
    Dim DB As DAO.Database: Set DB = CurrentDb
    Dim r As DAO.Recordset: Set r = DB.OpenRecordset("40006304", dbOpenTable)
    Dim myvariant As Variant
    Dim strsql As String
     
    myvariant = [NAT_GES]
    r.MoveFirst
    If IsNull(myvariant) Or myvariant = "" Then
    MsgBox ("egal vide")
    Else
     
    Select Case myvariant
     
    Case "65"
    MsgBox ("asm article")
    strsql = "UPDATE 40006304 SET 40006304.CLASS_ART='asm article'WHERE 40006304.NAT_GES ='65'"
    CurrentDb.Execute strsql
     
            Case "12"
            MsgBox ("elet standard")
            strsql = "UPDATE 40006304 SET 40006304.CLASS_ART = 'element standard'WHERE 40006304.NAT_GES ='12'"
            CurrentDb.Execute strsql
     
                Case "32"
                MsgBox ("prt article")
                strsql = "UPDATE 40006304 SET 40006304.CLASS_ART = 'prt article' WHERE 40006304.NAT_GES ='32'"
                CurrentDb.Execute strsql
            Case Else
            MsgBox ("pas prevu")
            End Select
            End If
     
     
     
    End Sub

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 421
    Billets dans le blog
    48
    Par défaut
    bonjour,

    déjà un nom de table avec que des chiffres comme 40006304, c'est pas cool
    Essaie déjà en mettant le nom de la table entre crochets [40006304].

    Lignes 17 et 22, manque une espace avant le WHERE.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Par défaut
    merci pour ce début de réponse
    le nom de la table vient d'un export de fichier XLS et c'est vrai que je ne l'ai pas modifié
    J'ai effectué les changements que tu m'a proposés, j'ai toujours mon problème de syntaxe
    Je vais essayer de changer le nom de la table

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    Salut patmar83 et f-leb,

    Essais en retirant la référence de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE 40006304.NAT_GES ='65'
    soit:

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Par défaut
    je viens d'essayer, j'ai un nouveau message d'erreur qui me dit "trop peu de paramètre 1 attendu"

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    essai dans ta fenêtre d'exécution de l'éditeur VB (CTRL+G):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.runsql "UPDATE 40006304 SET 40006304.CLASS_ART='asm article'WHERE NAT_GES ='65'"
    je viens de tester et cela fonctionne correctement.

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

Discussions similaires

  1. utilisation de UPDATE dans un code
    Par lepeule dans le forum Débuter
    Réponses: 5
    Dernier message: 21/05/2010, 08h29
  2. paramétre dans du code Sql
    Par franoisiup dans le forum WinDev
    Réponses: 7
    Dernier message: 22/04/2009, 20h16
  3. condition SI dans le code SQL
    Par franoisiup dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/04/2009, 23h04
  4. Mise a jour de date dans une DB SQL server
    Par Arfigado dans le forum ASP
    Réponses: 3
    Dernier message: 05/09/2006, 09h50
  5. Fonction UPDATE dans un ADOQuery - SQL
    Par yanba dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/03/2006, 13h53

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