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 :

Probleme de requete de mise a jour


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut Probleme de requete de mise a jour
    Bonjour,

    J'ai un souci sur un formulaire (dont un apercu se trouve ici)

    Mon but est le suivant:
    - lorsque l'utilisateur clique sur la case standard alors la valeur dans Value vaut Null. (voir l'image). Ca c'est ok j'y arrive.
    - par contre, la ou je bloque, c'est que si l'utilisateur reclique de nouveau sur standard, alors la valeur doit prendre une valeur provenant d'une autre table (Table des valeurs standard) pour l'enregistrement ayant le meme ID.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Standard_AfterUpdate()
       If Standard.Value = False Then
     
            ConditionValue.Value = Null
     
        Else
     
    '        ?!
    '        DoCmd.RunMacro "mcr_upd_StandardClientConditionsbyID"
    '
        End If
    End Sub
    C'est sur le deuxieme point sur lequel je bloque.
    J'ai essayé de créer une requete de mise a jour de valeur par ID puis une macro (mcr_upd_StandardClientConditionsbyID), mais ca ne fonctionne pas.

    Je bloque donc sur la construction requete de mise a jour de valeur.
    Et la je ne sais pas comment faire. Ou dois-je plutot passé par du sql imbriqué dans le meme code plutot qu'une requete et macro ?

    Merci d'avance pour votre aide !

  2. #2
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    En fait dans les criteres de la requete de mise a jour je ne sais pas comment générer l'expression permettant de dire en gros:
    On met a jour la valeur de l'enregistrement ou l'ID est celui de la case Standard qui a été recochée...

  3. #3
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Bonjour,

    a chaud, tu pourrais par exemple baser ton formulaire sur une requete prenant déjà en compte la table externe avec une jointure sur l'ID, non?
    et ainsi rajouter sur ton code

    mayekeul
    Alleï Bonjour chez vous!

  4. #4
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    Bonjour Maykeul et merci pour l'idée !!

    Avant de chambouler toutes les sources de mes sous formulaires, est-il possible de retranscrire en code ton idée de jointure sur l'ID et d'affectation de valeur?

    Merci

  5. #5
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    je dirais en ajoutant un sous-formulaire caché lié sur l'id

    si l'Id est unique dans la table externe, cela devrias aller sans problemes

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.Champx=me.Sousformulaire.champsy
    mayekeuk
    Alleï Bonjour chez vous!

  6. #6
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    Merci !

    J'ai fait avec ta méthode mais le formulaire est passé en formulaire avec 1 seul enregistrement a la fois ... et la mise a jour de valeur ne marche pas.

    Meme le passage en valeur Null ne fonctionne plus...
    Ca me rend fou lol!

    Je continue mes recherches au niveau du code VBA, je pense qu'il y a possibilité de faire de cette maniere.

  7. #7
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    on peux aussi faire avec dao par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    dim strSql as String
    strSql = "SELECT Id FROM table WHERE Id ="
    strSQL = strSql & me.ChampsId& ";"
     
    dim rs as dao.recordset
    set rs =currentdb.openrecordset(strSql)
     
    me.ChampsValeur = rs.Fields(0)
     
    rs.close
    Alleï Bonjour chez vous!

  8. #8
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    Merci beaucoup pour ta rapidité !

    Donc en reprenant mon code initial j''obtiens:

    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
    Private Sub Standard_AfterUpdate()
     
       If Standard.Value = False Then
     
            ConditionValue.Value = Null
            Forms!frm_Clients.Standard.Value = False
     
        Else
     
            Dim strSql As String
            strSql = "SELECT IDCondition FROM tbl_Standard_Conditions WHERE IDCondition = Me.IDCondition;"
     
            Dim rs As dao.Recordset
            Set rs = CurrentDb.OpenRecordset(strSql)
     
            Me.ConditionValue = rs.Fields(0)
     
            rs.Close
     
        End If
     
    End Sub
    Et l'erreur provient au niveau Set rs = CurrentDb.OpenRecordset(strSql) - Erreur 3061, trop peu de parametres... Et je vois pas ou ca bloque.

    J'ai essayé de mettre la requete hors boucle If mais idem ca passe pas...

  9. #9
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    a mon avis, il viens de ton string sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strSql = "SELECT IDCondition FROM tbl_Standard_Conditions WHERE IDCondition = Me.IDCondition;"
    je mettrai plutot ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSql = "SELECT IDCondition FROM tbl_Standard_Conditions WHERE IDCondition = " &  Me.IDCondition & ";"
    Alleï Bonjour chez vous!

  10. #10
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    Merci !
    D'une part car tu résouds mon souci et d'autre part tu m'as appris a passer par DAO !

    ps: dans ma requete c'est la valeur qu'il fallait selectionner comme champ a ajouter.

    La c'est l'ID qui était ajouté.

    Merci encore

  11. #11
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    de rien, avec plaisir!

    :o)

    allez, champagne
    Alleï Bonjour chez vous!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/08/2013, 08h19
  2. Probleme sur requete de mise à jour
    Par kikilevrai dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/01/2007, 11h54
  3. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 10h06
  4. Réponses: 18
    Dernier message: 24/08/2005, 09h52
  5. probleme de requete de mise à jour
    Par donny dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 21/06/2005, 17h06

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