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 :

Requête SQL pour Mise à jour de champs dans un formulaire suite à une saisie [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Requête SQL pour Mise à jour de champs dans un formulaire suite à une saisie
    Bonjour à tous

    Je suis actuellement étudiant et je cherche une solution pour renseigner des champs automatiquement après avoir saisi un premier (champ).

    Dans mon formulaire, j'ai un champ "Code_Barre" et je voudrais que quand je remplis celui-ci, deux autres champs se remplissent automatiquement ("Référence" et "PK"). Je ne peux pas les mettre tous les trois dans la table liée au formulaire sinon j'ai une redondance.

    A la base, j'ai une table qui regroupe ces trois champs (ce qui devrait me simplifier les choses,je pense).
    Cependant, le fromulaire en cause n'utilise que Le code barre, une quantité et un numéro de production (SuiviProdID)unique.

    C'est pourquoi j'essaie de faire une requête SQL (j'epère que c'est la bonne solution). J'ai vu dans un exemple qu'un utilisateur passait par un module pour faire sa requête. J'ai essayé mais ça ne marche pas.

    Dans le module (BDDSuivi) j'ai mis ceci:
    Code sql : 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
    '*Fonction qui retourne la référence et le PK en fonction du code barre***'
    'Paramètres d entrée : Code Barre'
    'Paramètre de sortie : Reférence produit'
    '                    : PK'
     
     
    Public Function RTRef_CodeBarre(code_barre As String, Optional PK As Byte) As Long
     
    On Error GoTo Err
     
        'Ouverture de la BDD'
        Set p_Db = CurrentDb
     
        'Création de la requête'
        p_Requete = "SELECT référence,PK FROM CB=> REF + PK WHERE Code Barre = " & code_barre & ""
     
        'Exécute la requête'
        Set p_MaRequete = p_Db.OpenRecordset(p_Requete)
     
        'Recupère les résultats'
        RTRef_CodeBarre = p_MaRequete("référence")
        PK = p_MaRequete("PK")
     
        'Ferme le recordset'
        p_MaRequete.Close
     
        'Ferme la BDD'
        p_Db.Close
     
    Exit_Err:
        Exit Function
    Err:
        MsgBox "Une erreur suivante s'est produite !"
        Resume Exit_Err
     
    End Function


    Puis dans ma procédure évenementielle, j'ai mis ceci:

    Code sql : 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
    '####Gestion des infos concernant le Code Barre choisi#####'
    Private Sub Code_Barre_AfterUpdate()
     
    On Error GoTo Err
     
        'Attribution de format aux valeurs'
        Dim code_barre As String
        Dim référence As Long
        Dim PK As Byte
     
        'Récupère la référence et le Pk du code Barre correspondant'
        référence = BDDSuivi.RTRef_CodeBarre(Trim(Me.code_barre.Value), PK)
     
    Exit_Err:
        Exit Sub
    Err:
        MsgBox "Une erreur est survenue!"
        Resume Exit_Err
     
    End Sub


    Cette solution me met une erreur


    J'ai également essayé sans passer par le Module:

    Code sql : 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 Code_Barre_AfterUpdate()
     
    On Error GoTo Err
     
        Dim code_barre As String
     
        'Requete'
        SELECT [CB=> REF + PK].[Code Barre], [CB=> REF + PK].référence, [CB=> REF + PK].PK
        FROM [CB=> REF + PK]
        WHERE [CB=> REF + PK].[Code Barre] = "& Code_barre &"
     
        'Récupération des données'
        Reference_formulaire = [CB=> REF + PK].référence
        PK_Formulaire= [CB=> REF + PK].PK
     
    Exit_Err:
        Exit Sub
    Err:
        MsgBox "Une erreur s'est produite, Désolé"
        Resume Exit_Err
     
    End Sub

    Sur cette dernière méthode, il me met qu'il y a une erreur sur la ligne :SELECT [CB=>REF + PK].[Code Barre].......
    Il me l'affiche en rouge et il me met : "erreur de compilation. Attendu: Case"

    Voila, le point où j'en suis
    J'espère que je vous ai bien expliqué mon bloquage avec mes mots de débutant.

    Bonne soirée à tous

    Et Merci d'avance

    Antoine

  2. #2
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Bonsoir,

    Je vais essayer de t'aider :
    Ta requête semble fausse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT référence,PK FROM CB=> REF + PK WHERE Code Barre = " & code_barre & ""
    Essaye avec Nom_Table le nom de la table ou tu stock référence,PK, et Code Barre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT référence,PK FROM Nom_Table WHERE [Code Barre] = " & code_barre & ""
    Dans ton 3ème exemple tu mélange complètement les codes VBA et SQL qui ne sont pas interprété par le même programme, reste sur tes premiers tests.
    Pour mieux repérer tes erreurs retire les "on error" de tes procédures.

    Bon courage tiens nous au courrant.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Bonsoir

    tout d'abord, merci pour ta réponse

    J'ai essayé ce que tu m'as dis mais en fait, le nom de ma table ou sont référencés ma référence, pk et code barre sappelle: CB=> REF + PK

    Voici ce que j'ai essayé

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT référence,PK FROM [CB=> REF + PK] WHERE [Code Barre] = " & code_barre & ""

    Mais il me met "erreur de compilation, attendu:Case" et ça je ne sais pas ce que c'est...

    J'ai essayé simplement en passant par un sous formulaire et apparement pour l'instant ça a l'air de fonctionner.

  4. #4
    Membre habitué Avatar de B_SKO
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 95
    Points : 125
    Points
    125
    Par défaut
    Bonsoir,

    Tu mélange toujours ton code SQL et VBA il faut que tu injecte ton SQL dans une formulaire... (Select est aussi une fonction VBA)

    Bon courage.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Hey merci

    En fait ça y est, ça marche à merveille

    J'ai fait ce que je voulais faire avec un sous formulaire dont les champs (père et fils) sont le code barre.
    Du coup ça marche après l'appui sur un boutonj valider, pile ce que je voulais.

    Merci encore pour ton aide B_SKO, vraiment car je ne me rendais pas compte que je mélangeais les langages et je m'entêtais à chercher dans cette direction

    Au revoir et à bientôt

    Antoine

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/04/2014, 11h24
  2. Réponses: 1
    Dernier message: 01/08/2011, 20h49
  3. Mise à jour de champs d'un formulaire via une liste.
    Par henkala dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/03/2011, 15h30
  4. Réponses: 8
    Dernier message: 09/01/2007, 16h30
  5. Requête SQL de mise à jour
    Par Platon93 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 24/11/2006, 13h44

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