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 :

Récupération des valeurs d'une table dans une 2nd par l'intermédiaire d'un formulaire


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut Récupération des valeurs d'une table dans une 2nd par l'intermédiaire d'un formulaire
    Bonjour forum,

    Donc je vais vous expliquer mon petit problème avec access et VBA.

    Donc j'ai une table Produit et une table Devis je souhaiterai, par l'intermédiaire d'un formulaire récupérer des valeurs sélectionné dans le formulaire (formulaire rattaché à la table devis) en utilisant la Fonction DLookup.

    Mon 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
    23
    24
    25
    26
    27
    28
    Private Sub Référence_AfterUpdate()
    On Error GoTo Err_Référence_AfterUpdate
     
        Dim strFiltre As String
     
         ' Définit le filtre avant d'être utilisé dans la fonction DLookup.
        strFiltre = "[Référence] = " & Me![Référence]
     
         ' Recherche le Commentaire Réf du produit et l'assigne au contrôle Commentaire Réf.
        Me![Commentaire Réf] = DLookup("[Commentaire Réf]", "T_Référence / Type", strFiltre)
     
         ' Recherche le Descriptif Réf du produit et l'assigne au contrôle Descriptif Réf.
        Me![Descriptif Réf] = DLookup("[Descriptif Réf]", "T_Référence / Type", strFiltre)
     
         ' Recherche le Prix Tarif Réf du produit et l'assigne au contrôle Prix Tarif Réf.
        Me![Prix Tarif Réf] = DLookup("[Prix Tarif Réf]", "T_Référence / Type", strFiltre)
     
         ' Recherche la Remise Réf (%) du produit et l'assigne au contrôle Remise Réf (%).
        Me![Remise Réf (%)] = DLookup("[Remise Réf (%)]", "T_Référence / Type", strFiltre)
     
     
    Quitte_Référence_AfterUpdate:
        Exit Sub
     
    Err_Référence_AfterUpdate:
        MsgBox Err.Description
        Resume Quitte_Référence_AfterUpdate
    End Sub
    Lorsque j'excecute mon formulaire et que je choisis la référence, ilo me met un message d'erreur :

    Erreur de syntaxe (opérateur abscent) dans l'expression 'Référence = TSX 37 21 101'

    Donc si quelqu'un peut m'aider, merci d'avance.
    Bubut

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Comme trés frquément évoqué sur ce forum, il ne faut pas oublier en SQL les syantaxes propres à chque type de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strFiltre = "[Référence] = '" & Me![Référence] & "'"

    En passant, ton code peut être optimisé en remplaçant tes 4 dlookup (représentant donc l'équivalent de 4 requêtes) par un recordset.

    C'est mon jour de bonté : voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Dim orst As DAO.Recordset
     
        Set orst = CurrentDb.OpenRecordset("SELECT * FROM [T_Référence / Type] WHERE [Référence] = '" & Me![Référence] & "'")
        If Not orst.EOF Then
            Me![Commentaire Réf] = orst![Commentaire Réf]
            Me![Descriptif Réf] = orst![Descriptif Réf]
            Me![Prix Tarif Réf] = orst![Prix Tarif Réf]
            Me![Remise Réf (%)] = orst![Remise Réf (%)]
       End If
       orst.Close: Set orst = Nothing

  3. #3
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,
    je pense qu'il y a une erreur au niveau du strFiltre
    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
    Private Sub Référence_AfterUpdate()
    On Error GoTo Err_Référence_AfterUpdate
     
        Dim strFiltre As String
     
         ' Définit le filtre avant d'être utilisé dans la fonction DLookup.
        strFiltre = "[Référence] = '" & Me![Référence] &"'"
     
         ' Recherche le Commentaire Réf du produit et l'assigne au contrôle Commentaire Réf.
        Me![Commentaire Réf] = DLookup("[Commentaire Réf]", "T_Référence / Type", strFiltre)
     
         ' Recherche le Descriptif Réf du produit et l'assigne au contrôle Descriptif Réf.
        Me![Descriptif Réf] = DLookup("[Descriptif Réf]", "T_Référence / Type", strFiltre)
     
         ' Recherche le Prix Tarif Réf du produit et l'assigne au contrôle Prix Tarif Réf.
        Me![Prix Tarif Réf] = DLookup("[Prix Tarif Réf]", "T_Référence / Type", strFiltre)
     
         ' Recherche la Remise Réf (%) du produit et l'assigne au contrôle Remise Réf (%).
        Me![Remise Réf (%)] = DLookup("[Remise Réf (%)]", "T_Référence / Type", strFiltre)
     
     
    Quitte_Référence_AfterUpdate:
        Exit Sub
     
    Err_Référence_AfterUpdate:
        MsgBox Err.Description
        Resume Quitte_Référence_AfterUpdate
    End Sub
    comme ta référence est du texte, il faut lui rajouter un apostrophe avant et après

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup de m'avoir aidé aussi rapidement, je ne voyai pas mon erreur.

    A+
    Bubut

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [Débutant] Récupération des valeurs d'un champ dans une section extensible
    Par Catarssis dans le forum InfoPath
    Réponses: 16
    Dernier message: 04/09/2012, 10h39
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. multiplier des valeurs de 2 tables dans une requete
    Par metaldan dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/01/2009, 10h17

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