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

Access Discussion :

Erreur de syntaxe ?


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Erreur de syntaxe ?
    Je ne comprends pas pourquoi, quand je mets le code suivant, dans mon sous formulaire pour que le prix du produit renseigné dans la table produit soit récupéré dans la table commande, la récupération ne se fait pas ?

    Private Sub Form_Current()

    Dim p As String

    p = "SELECT DISTINCTROW Produits.* FROM Produits" & _
    " WHERE RéfProduit=" & Me!RéfProduit

    Me![Sous-formulaire Bons de commande].Form!PrixUnitaire.RowSource = p
    Me![Sous-formulaire Bons de commande].Form!PrixUnitaire.Requery

    End Sub
    La syntaxe n'est-elle pas bonne ?

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 401
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    Non ca ne peux pas fonctionner car ton sql s'applique uniquement à ta liste RefProduit de ton sous formulaire:

    De plus il me semble qu'il y a 1 problème plus important à résoudre:

    A première vue ta table Produit ne peut pas être la source de ton sous formulaire..il faut plutot utiliser une table Detail_Commande

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Oui, en fait, c'est la table [Transactions inventaire] qui est utilisé pour stocker le détail de chaque commande.

    En revanche, les informations de chaque produit (Désignation, Prix Unitaire ...) sont stockés, eux, dans la table produit.

    C'est pourquoi, j'essaye d'aller chercher ces informations pour les ramener vers [Transactions inventaire]. (Notamment le prix Unitaire de chaque produit en fonction de la sélection qui est fait avant).

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 401
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    Donc ton sous formulaire doit se base sur [Transactions inventaire],

    Dans ce cas tu peux faire dans ton sous formulaire et sur AfterUpdate de RefProduit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub RéfProduit_AfterUpdate()
     
    Me!PrixUnitaire=DLookup("PrixUnitaire","Produits"," "RéfProduit='" & Me!RéfProduit & "'")
     
    End Sub
    @+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Impossible de valider le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub RéfProduit_AfterUpdate()
    
    Me!PrixUnitaire=nz(DLookup("PrixUnitaire","Produits"," "RéfProduit='" & Me!RéfProduit & "'"),"")
    
    End Sub
    Le VB me mets :

    Erreur de compilation :
    Attendu : séparateur de liste ou )
    Comme plusieurs arguments sont utilisés, ne faut-il pas utiliser [Call] ?
    (Heu ... ça n'a peut être rien a voir ... ]

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 401
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    Mea culpa

    essai ca plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub RéfProduit_AfterUpdate()
     
    Me!PrixUnitaire=DLookup("PrixUnitaire","Produits","RéfProduit='" & Me!RéfProduit & "'")
     
    End Sub

    Au fait RéfProduit c'est bien du string

    @+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Négatif.
    J'ai bien pu mettre le code, mais quand je sélectionne un produit, le prix unitaire n'apparait pas.

    Et au passage, je viens de remarquer une petite anomalie sur la liste des produit ! ^^
    Je pense qu'elle n'est pas rafraichi, car quand on créé une nouvelle commande et que l'on sélection un fournisseur, la liste des produits, dans le sous formalaire, est vide.
    Il suffit de faire enregistrement précédent et enregistrement suivant pour que la liste modifiable apparaisse avec les produits du fournisseur. ^^
    Ca, je pense que ce n'est vraiment pas grand chose.

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 401
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    Pour ta liste de produit il faut aussi mettre le code sur afterupdate de RéfFournisseur dans ton form principal:

    comme je te l'ai indiqué dans ta discussion précédente:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub RéfFournisseur_AfterUpdate()
    Dim s As String
     
    s = "SELECT DISTINCTROW Produits.* FROM Produits" & _
    " WHERE RéfFournisseur=" & Me!RéfFournisseur & _
    " ORDER BY [Produits].[NomProduit];"
     
    Me![Sous-formulaire Bons de commande].Form!RéfProduit.RowSource = s
    Me![Sous-formulaire Bons de commande].Form!RéfProduit.Requery
     
    End Sub

    Pour le dernier code laisse moi vérifier 2 minutes..


    Tu ne m'a pas répondu c'est du text ton champ RéfProduit ???

    @+

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 401
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    si RéfProduit est du numérique tu fais simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub RéfProduit_AfterUpdate()
    Me!PrixUnitaire=DLookup("PrixUnitaire","Produits","RéfProduit=" & Me!RéfProduit )
     
    End Sub

    @+

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par User
    ...
    Tu ne m'a pas répondu c'est du text ton champ RéfProduit ???
    ...
    Désolé, ...
    Oui, RéfProduit est bien du numérique, puisque c'est la clé primaire de la table Produit, qui s'incrémente automatiquement.

    ...

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Code nickel !!
    Merci User.

    Je n'aurais pas eu le temps d'atteindre les 50 messages pour avoir droit de mettre une signature a mes messages, alors je vais la mettre dans le corps du message.

    ++



    User est une valeur sur, et ces codes et conseils valent de l'or ! ^^

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 401
    Points : 19 833
    Points
    19 833
    Billets dans le blog
    66
    Par défaut
    merci

    N'hésite pas à explorer toutes les propriétés, évènements des form et des contrôle (texbox, list etc..) pour voir leur fonction et toutes les possibilités du code VBA (DLookup,DMax,DSum etc..) le DAO avec les recordSet et ses méthodes, quand tu as un problème avec une fonction ou une méthode cherche des exemples par mot clé dans la faq, les sources, et le forum, consulte aussi les tutos..

    Bonne continuation,

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

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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