Une requ=EAte R_D=E9tailsCommandeComplets
Cette requ=EAte est d=E9finie comme suit une table T_D=E9tailsCommande en
relation avec
Une table
T_Nomenclature en relation avec
une table
T_TauxdeTVA
SELECT T_D=E9tailsCommande.Num=E9roCommande,
T_D=E9tailsCommande.R=E9fNomenclature, T_Nomenclature.Libell=E9,
T_Nomenclature.TauxdeTva, T_D=E9tailsCommande.Quantit=E9,
T_Nomenclature.PrixUnitaire, T_D=E9tailsCommande.TotalFa=E7on,
T_D=E9tailsCommande.TotalFourniture, T_D=E9tailsCommande.TvaLigneCommande
FROM T_TauxdeTVA INNER JOIN (T_Nomenclature INNER JOIN
T_D=E9tailsCommande ON
T_Nomenclature.R=E9fNomenclature=3DT_D=E9tailsCommande.R=E9fNomenclature) ON
T_TauxdeTVA.[Taux de tva]=3DT_Nomenclature.TauxdeTva;
2-----------------------
Pour encoder une commande sortante, j'ouvre un Premier formulaire
F_SortirCommandeRecherche dont les donn=E9es proviennent de la requete
R_CommandeSortir.
Une fois que j'ai choisi un client, ce formulaire sur base du code ci
dessous ouvre un nouveau formulaire appel=E9 F_SortirCommande
Private Sub NumerodelaCommande_AfterUpdate()
DoCmd.OpenForm "F_SortirCommande", , , "NumeroCommande=3D" &
NumerodelaCommande, acFormEdit
End Sub
Le Formulaire F_SortirCommande contient un sous_formulaire
F_ContenuCommande
Les donn=E9es du formulaire principal proviennent de la requ=EAte
R_CommandeSortir.
Les donn=E9es du sous formulaire principal proviennent de
R_DetailsCommandeComplets
3------------------------
Et maintenant commence mes probl=E8mes ???
Le but de l'application est de pouvoir encod=E9 une commande en
plusieurs =E9tape (Il y a des =E9tapes de r=E9alisations qui le justifie
donc le travail command=E9 sort et entre plusieurs fois et pour =E9vit=E9
des oublis, Les diverses op=E9rations r=E9alis=E9es sont encod=E9es apr=E8s
chaques =E9tapes et en final lorsque le travail est termin=E9 il est
imprim=E9 sous forme de bon de livraison en vue facture mensuelle)
Lorsque je saisis les =E9l=E9ments de ma commande (R=E9fNomenclature), Je
ne sais pas comment programmer la v=E9rification d'un encodage
ant=E9rieur sans =EAtre oblig=E9 de v=E9rifier manuellement (utilisation de
l'ascenseur lat=E9ral).
J'ai trouv=E9 cette astuce qui fonctionne mais uniquement lors de la
premi=E8re commande.
Lors de la saisie d'une deuxi=E8me commande, si une m=EAme
r=E9fNomenclature est d=E9j=E0 encod=E9e pour une autre commande, il
consid=E8re que la r=E9f=E9rence est d=E9j=E0 encod=E9e dans cette nouvelle
commande ??
Private Sub R=E9fNomenclature_BeforeUpdate(Cancel As Integer)
'----
'- Je v=E9rifie que la r=E9f=E9rence nomenclature n'est pas d=E9j=E0
encod=E9 OK
'-
'- dans le sous-formulaire F_ContenuCommande
'- Si OUI 1_ Je supprime la saisie
2_ Pas encore programmer
JE repositionne le curseur sur l'enregistrement en
position saisie de la quantit=E9
'- Si NON on continue l'op=E9ration de saisie normalement.
'----
MsgBox "Produit d=E9j=E0 pr=E9sent dans la commande, Corrig=E9 la
quantite."
Cancel =3D True
Me!R=E9fNomenclature.Undo
End If
End Sub
Je pense que dans la condition, je devrait ajouter un test sur le
num=E9ro de commande
du genre
If (Not IsNull(DLookup("[R=E9fNomenclature]",
"R_D=E9tailscommandecomplets", "[R=E9fNomenclature]=3D '" &
Me!R=E9fNomenclature & "'" And "[Num=E9roCommande] =3D &
Me.Num=E9roCommande" ))) then
Mais j'ai essay=E9 et access me met une erreur d'incoh=E9rence de type (
le num=E9ro de commande est du type Num=E9rique alors que la
R=E9fNomenclature est du type Caract=E8re
De plus, je n'ai trouv=E9 aucun exeemple utilisant l'op=E9rateur AND
En plus, je ne sais pas comment repositionner mon curseur sur la bonne
ligne et sur le champ quantit=E9 apr=E8s l'ex=E9cution de ce code, la
ligne est bien supprim=E9e, mais je ne suis pas repositionner sur la
ligne contenant l'=E9l=E9ment existant.
4---------------------
Ma derni=E8re question :
Comment supprimer un enregistrement dont la quantit=E9 saisie serait
=E9gale =E0 z=E9ro?
J'ai plac=E9 dans les propri=E9t=E9s du champ Quantit=E9 Valide si <>
0
Mais 0 est accepter quand m=EAme et la saisie passe =E0 la ligne
suivante ??
Si vous lisez ceci "Merci pour votre compr=E9hension et votre
patience"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"pibo"
[...] Je pense que dans la condition, je devrait ajouter un test sur le numéro de commande du genre
essaies :
If (Not IsNull(DLookup("[RéfNomenclature]" , "R_Détailscommandecomplets", "[RéfNomenclature]= '" & Me!RéfNomenclature & "' And [NuméroCommande] = & Me.[NuméroCommande]" ))) then
En plus, je ne sais pas comment repositionner mon curseur sur la bonne ligne et sur le champ quantité après l'exécution de ce code, la ligne est bien supprimée, mais je ne suis pas repositionner sur la ligne contenant l'élément existant.
il faut faire le test dans l'événement "avant mise à jour" et annuler (cancel = true) le cas échéant...
Comment supprimer un enregistrement dont la quantité saisie serait égale à zéro?
[...]
Je pense que dans la condition, je devrait ajouter un test sur le
numéro de commande
du genre
essaies :
If (Not IsNull(DLookup("[RéfNomenclature]" , "R_Détailscommandecomplets", "[RéfNomenclature]= '" &
Me!RéfNomenclature & "' And [NuméroCommande] = & Me.[NuméroCommande]" ))) then
En plus, je ne sais pas comment repositionner mon curseur sur la bonne
ligne et sur le champ quantité après l'exécution de ce code, la
ligne est bien supprimée, mais je ne suis pas repositionner sur la
ligne contenant l'élément existant.
il faut faire le test dans l'événement "avant mise à jour" et annuler
(cancel = true) le cas échéant...
Comment supprimer un enregistrement dont la quantité saisie serait
égale à zéro?
[...] Je pense que dans la condition, je devrait ajouter un test sur le numéro de commande du genre
essaies :
If (Not IsNull(DLookup("[RéfNomenclature]" , "R_Détailscommandecomplets", "[RéfNomenclature]= '" & Me!RéfNomenclature & "' And [NuméroCommande] = & Me.[NuméroCommande]" ))) then
En plus, je ne sais pas comment repositionner mon curseur sur la bonne ligne et sur le champ quantité après l'exécution de ce code, la ligne est bien supprimée, mais je ne suis pas repositionner sur la ligne contenant l'élément existant.
il faut faire le test dans l'événement "avant mise à jour" et annuler (cancel = true) le cas échéant...
Comment supprimer un enregistrement dont la quantité saisie serait égale à zéro?