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 :

Modif d'un enregistrement d'une table sur formulaire [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut Modif d'un enregistrement d'une table sur formulaire
    Bonjour,

    Mon code me ramène un erreur d'opérateur lorsque j'essaie d'effectuer l'action suivante:

    Dans un formulaire, j'ai une table, si je modifie la valeur d'un champ dans cette table, j'aimerais que cette valeur se répercute sur l'enregistrement d'une autre table.

    Donc, sous l'évênement après modification du champ de mon formulaire j'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "update table1 set champ1='" & champ1 & "', champ2='" & champ2 & "' where champ1= " & champ1.OldValue & ""
    J'ai l'erreur opérateur absent entre le set et le where. Je ne saisis pas, parce qu'au survol, les valeurs attribué dans la fonction sql sont les bonnes, mis a part le oldvalue qui ajoutent '...' a la fin de la valeur.

    Est-ce quelqu'un voit d'ou l'ereur peut provenir?

    Merci de votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    Bonour,

    J'ai trouvé comment effectuer le changement, j'étais sur le after update au lieu du before update.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim originalvalue As String
    Dim vtâches As String
    Dim StrTableName As String
    originalvalue = Me!Tâches.OldValue
    vtâches = Me![Tâches]
    DoCmd.RunSQL "update tâches set id= '" & ID & "', tâches ='" & vtâches & "' where tâches='" & originalvalue & "' and id='" & ID & "'"
    Ça fonctionne très bien a part un cas particulier ou si ma valeur de champ est null, donc vide, la je tombe en erreur pour la fonction, y-a-t'il moyen d'éviter cela?

    Merci

  3. #3
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    Bonjour,

    Suffisait d'intégrer la fonction NZ...

    Problème résolu

    Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 64
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Sinon tu pouvais mettre en place la gestion des erreurs avec un truc dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If IsNull(champ1) Then
    MsgBox("Veuillez remplir le champ1")
    champ1.SetFocus
    End If

  5. #5
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    Effectivement Taylorised,

    Dans mon cas particulier, je ne pouvais me permettre un arrêt sur chaque champ si le champ était null, j'ai donc passé par NZ pour la variable originalvalue avec un if.

    Par contre, merci pour le setfocus, tu m'as fait pensé à rajouter cette fonction en début de formulaire

    Merci

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

Discussions similaires

  1. [WD17] Modification d'un enregistrement d'une table
    Par Concept-Informatique dans le forum WinDev
    Réponses: 28
    Dernier message: 25/05/2012, 19h11
  2. Réponses: 1
    Dernier message: 13/12/2010, 14h31
  3. Récup enregistrement d'une table avec formulaire
    Par alexiisme dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 01/09/2007, 20h07
  4. Modification d'un enregistrement dans une table
    Par cyberspace7119 dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/06/2007, 11h02
  5. Réponses: 7
    Dernier message: 30/05/2006, 11h00

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