Base exemple : Les comptoirs

Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013
-
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013
-
Bonjour a tous.

Tous le monde connais bien la base de données exemple fourni avec Access : Les Comptoirs.

Il se trouve que cette base de données me conviendra parfaitement, mais il me manque un formulaire.
En effet, le formulaire de commande intégré a cette base de données est utilisé pour saisir des commandes clients.
J'aimerais ajouter exactement le même formulaire, mais à la place d'avoir la liste des clients en choix, je souhaiterais avoir la liste des fournisseurs et, plus compliqué (pour moi) la liste des article a commandé (achat) pour ce fournisseur uniquement.

Quelqu'un pourrait-il me venir en aide svp ?

D'avance merci.

9 réponses

Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

Je vois que beaucoup lise mais pas beaucoup réponde ! ^^
En fait, je recherche juste le moyen de faire un formulaire pour passer une commande d'article, mais les options qui me sont proposés avec l'assistant ne correspondent pas aux besoins du bon de commande ...
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
tu dis : "Je vois que beaucoup lise mais pas beaucoup réponde "

=> pourquoi ne t'auto-réponds tu pas ?
> parce que tu ne connais pas la réponse.

=> Pourquoi beaucoup lise mais pas beaucoup réponde ?
> parce que "beaucoup" ne connaissent pas la réponse.

C'est pas forcémment en 25 minutes que l'on trouve une réponse.
Pour infos, on ne peut pas faire le formulaire pour toi, nous pouvons tout simplement modifier du code erroné !

Cherche sur le site le "SQL"
Voit le code que tu as pour "la liste des clients en choix" et adapte la pour "la liste des fournisseurs" (Alt F11).
Une fois ceci fait, si problème, met nous ton code et on verra à ce moment.

++
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

Bonjour,



[auteurdetail.aspx?ID= 647037 mortalino] => Merci d'avoir répondu et d'avoir commencé a m'aiguiller.




Le champs "Reffournisseur" est le suivant :
[Fournisseur].[RéfFournisseur]
=> Table.Champ = > (Clé primaire)
Dans mon formulaire, j'ai une liste modifiable, associé a cette table, me permettant de choisir un fournisseur.

Dans mon sous formulaire, j'ai une liste modifiable avec TOUS les produits stockés dans la table "Produits", trié par ordre croissant, d'ou l'instruction SQL suivante :
SELECT DISTINCTROW Produits.* FROM Produits ORDER BY Produits.NomProduit;




Je souhaiterais donc mettre un filtrer pour afficher dans la liste modifiable de mon sous formulaire uniquement les produits correspondant à mon fournisseur :


SELECT DISTINCTROW Produits.*, Fournisseurs.RéfFournisseur FROM Fournisseurs INNER JOIN Produits ON Fournisseurs.RéfFournisseur =Produits.[RéfFournisseur#] ORDER BY Produits.NomProduit;




A aucun moment, avec cette instruction, la liste modifiable du sous formulaire a comme ordre d'aller chercher la référence du fournisseur choisi dans le formulaire principale pour faire un tri.
C'est pourquoi je pense qu'a ce stade, la liste modifiable des produits affiche toujours la totalité des produit enregistrés et que la sélection des produits par rapport à la référence fournisseur choisi ne se fait pas.
... Et je ne sais malheureusement pas comment récupérer l'information du formulaire principal (Reffournisseur) pour me permettre de faire une sélection par rapport au fournisseur choisi.



[auteurdetail.aspx?ID=647037 mortalino]



Voici le code que tu as demandé  (Alt+F11 => Celui de la liste modifiable Produit du sous formulaire) :


Private Sub AfficherBonsCommande()
On Error GoTo Err_AfficherBonsCommande
    If IsNull(Forms![Produits]![RéfProduit]) Then
        MsgBox "Tapez les informations sur le produit avant de taper le bon de commande."
    Else
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
        DoCmd.OpenForm "Bons de commande"
        If Me![RéfBonCommande] > 0 Then
            DoCmd.GoToControl "RéfBonCommande"
            DoCmd.FindRecord Me![RéfBonCommande]
        Else
            If Not IsNull(Forms![Bons de commande]![RéfBonCommande]) Then
                DoCmd.DoMenuItem acFormBar, 3, 0, , acMenuVer70
            End If
        End If
    End If

Exit_AfficherBonsCommande:
    Exit Sub

Err_AfficherBonsCommande:
    MsgBox Err.Description
    Resume Exit_AfficherBonsCommande
End Sub

=> Heuuuu ...... Bizarre !




Je n'ai pas l'impression que ce code est utilisé pour ce que je veux faire, si ?
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

Quand on est un noob, ce qui est bien, c'est qu'on peut se rendre compte de ses propres co**eries !

Pour la référence Fournisseur de la table Produit, il ne s'agit pas de faire un lien entre RéfFournisseur de la table Fournisseur, mais bien de RéfFournisseur de la table [Bon de commande] ^^
Bon, ben je vais tester d'autres trucs, je pense être sur une meilleur voie quand même ... (Enfin, j'espère )
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

Désolé pour le triple post, je ne savais pas qu'on ne pouvait pas éditer ses propres messages.

Avec un lien entre Bon de commande et Produit, j'ai l'instruction SQL suivante :


SELECT DISTINCTROW Produits.*, [Bons de commande].RéfFournisseur FROM [Bons de commande] INNER JOIN Produits ON [Bons de commande].RéfFournisseur=Produits.[RéfFournisseur#] ORDER BY Produits.NomProduit;

Et alors là, j'comprends vraiment pas pourquoi ça ne marche pas
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Et tout simplement ceci, est-ce que ça fonctionne ? :

SELECT *
FROM [Bons de commande] INNER JOIN Produits ON [Bons de
commande].RéfFournisseur=Produits.[RéfFournisseur#] ORDER BY
Produits.NomProduit;

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

Perdu !

Avec cette instruction, il n'y a plus aucun produit dans la liste ...
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

En fait, je pense savoir d'ou vient le problème.
Si je lance la requete du code SQL suivant
SELECT DISTINCTROW Produits.*, [Bons de commande].RéfFournisseur
FROM [Bons de commande] INNER JOIN Produits ON [Bons de
commande].RéfFournisseur=Produits.[RéfFournisseur#] ORDER BY
Produits.NomProduit;
la requête est parfaite, et affiche bien tous les produits de chacun des fournisseurs.

En revanche, dans cette instruction, rien ne lui dit d'aller chercher la RéfFournisseur du bon de commande en cours !!!
Je pense que c'est pour ça qu'il n'y a pas de tri par rapport au fournisseur précédemment sélectionné, car comme il n'y pas de sélection sur le fournisseur "en cours", la sélection se fait sur l'ensemble des fournisseurs ...
Messages postés
11
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
24 juillet 2013

UP !!

Comment faire pour sélectionner une référence particulière sur un formulaire svp, afin de pouvoir faire une requête sélection avec un critère ?