Dans le formulaire "produits" j'ai 2 combobox, une pour les noms de produits
et l'autre pour les nr réf produits (affiche le nr réf produit et le
nomproduit).
Il est donc ainsi possible de chercher un produit par son nom ou par son nr
réf.
Comme il s'agit du nr réf chez le fournisseur, celui-ci est susceptible de
changer.
Son contenu est :
SELECT [Produits].[RéfProduit], [Produits].[NrRéfFournisseur],
[Produits].[NomProduit] FROM Produits ORDER BY [NrRéfFournisseur];
Limiter à liste : oui
Sur absence dans liste :
Private Sub ListeNrRéfFournisseur_NotInList(NewData As String, Response As
Integer)
If MsgBox("Ce numéro de référence n'existe pas dans la base de données." &
Chr(10) & Chr(13) & "Voulez-vous introduire un nouveau numéro de référence
ou modifier celui-ci ?", vbYesNo, "Erreur de numéro de référence") = vbYes
Then
Response = acDataErrContinue
Me.ListeNrRéfFournisseur.Undo
Me.NrRéfFournisseur.Visible = True
Me.NrRéfFournisseur.SetFocus
Me.ListeNrRéfFournisseur.Visible = False
Else
Response = acDataErrContinue
Me.ListeNrRéfFournisseur.Undo
End If
End Sub
Tout cela fonctionne bien.
Il est donc possible d'introduire un nouveau NrRéfFournisseur ou de modifier
l'actuel.
Sur MAJ (du champs NrRéfFournisseur) :
Private Sub NrRéfFournisseur_AfterUpdate()
Me.ListeNrRéfFournisseur.Visible = True
Me.ListeNrRéfFournisseur.Requery
Me.ListeNrRéfFournisseur.SetFocus
Me.ListeNrRéfFournisseur = Me.ListeNomProduit
Me.NrRéfFournisseur.Visible = False
End Sub
C'est ic que ça coince.
Il affiche bien la ligne du bon produit (cfr la colonne NomProduit) mais le
NrRéfFournisseur reste vide.
Je pensais que le Requery referait le query et qu'il prendrait donc la
valeur.
Pour que la valeur soit prise en compte, je dois actuellement fermer et
rouvrir le formulaire.
Il doit exister un moyen, mais lequel ?
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
Jean-Marc
J'ai trouvé, pour ceux que cela intéresse : Il faut mettre DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 au début du MAJ du champs NrRéfFournisseur pour qu'il sauvegarde les données dans la table AVANT de faire le requery du combobox.
JM
"Jean-Marc" a écrit dans le message de news:
Salut à tous,
Dans le formulaire "produits" j'ai 2 combobox, une pour les noms de produits
et l'autre pour les nr réf produits (affiche le nr réf produit et le nomproduit). Il est donc ainsi possible de chercher un produit par son nom ou par son nr
réf. Comme il s'agit du nr réf chez le fournisseur, celui-ci est susceptible de changer. Son contenu est : SELECT [Produits].[RéfProduit], [Produits].[NrRéfFournisseur], [Produits].[NomProduit] FROM Produits ORDER BY [NrRéfFournisseur]; Limiter à liste : oui Sur absence dans liste : Private Sub ListeNrRéfFournisseur_NotInList(NewData As String, Response As Integer) If MsgBox("Ce numéro de référence n'existe pas dans la base de données." & Chr(10) & Chr(13) & "Voulez-vous introduire un nouveau numéro de référence ou modifier celui-ci ?", vbYesNo, "Erreur de numéro de référence") = vbYes Then Response = acDataErrContinue Me.ListeNrRéfFournisseur.Undo Me.NrRéfFournisseur.Visible = True Me.NrRéfFournisseur.SetFocus Me.ListeNrRéfFournisseur.Visible = False Else Response = acDataErrContinue Me.ListeNrRéfFournisseur.Undo End If End Sub
Tout cela fonctionne bien. Il est donc possible d'introduire un nouveau NrRéfFournisseur ou de modifier
l'actuel. Sur MAJ (du champs NrRéfFournisseur) : Private Sub NrRéfFournisseur_AfterUpdate() Me.ListeNrRéfFournisseur.Visible = True Me.ListeNrRéfFournisseur.Requery Me.ListeNrRéfFournisseur.SetFocus Me.ListeNrRéfFournisseur = Me.ListeNomProduit Me.NrRéfFournisseur.Visible = False End Sub
C'est ic que ça coince. Il affiche bien la ligne du bon produit (cfr la colonne NomProduit) mais le
NrRéfFournisseur reste vide. Je pensais que le Requery referait le query et qu'il prendrait donc la valeur. Pour que la valeur soit prise en compte, je dois actuellement fermer et rouvrir le formulaire. Il doit exister un moyen, mais lequel ?
Merci de vos z'avis z'avisés,
Jean-Marc
J'ai trouvé, pour ceux que cela intéresse :
Il faut mettre
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
au début du MAJ du champs NrRéfFournisseur pour qu'il sauvegarde les données
dans la table AVANT de faire le requery du combobox.
JM
"Jean-Marc" <NoSpam.jm.deneyer@advalvas.be> a écrit dans le message de
news:Ofay6564EHA.1188@tk2msftngp13.phx.gbl...
Salut à tous,
Dans le formulaire "produits" j'ai 2 combobox, une pour les noms de
produits
et l'autre pour les nr réf produits (affiche le nr réf produit et le
nomproduit).
Il est donc ainsi possible de chercher un produit par son nom ou par son
nr
réf.
Comme il s'agit du nr réf chez le fournisseur, celui-ci est susceptible de
changer.
Son contenu est :
SELECT [Produits].[RéfProduit], [Produits].[NrRéfFournisseur],
[Produits].[NomProduit] FROM Produits ORDER BY [NrRéfFournisseur];
Limiter à liste : oui
Sur absence dans liste :
Private Sub ListeNrRéfFournisseur_NotInList(NewData As String, Response As
Integer)
If MsgBox("Ce numéro de référence n'existe pas dans la base de données." &
Chr(10) & Chr(13) & "Voulez-vous introduire un nouveau numéro de référence
ou modifier celui-ci ?", vbYesNo, "Erreur de numéro de référence") = vbYes
Then
Response = acDataErrContinue
Me.ListeNrRéfFournisseur.Undo
Me.NrRéfFournisseur.Visible = True
Me.NrRéfFournisseur.SetFocus
Me.ListeNrRéfFournisseur.Visible = False
Else
Response = acDataErrContinue
Me.ListeNrRéfFournisseur.Undo
End If
End Sub
Tout cela fonctionne bien.
Il est donc possible d'introduire un nouveau NrRéfFournisseur ou de
modifier
l'actuel.
Sur MAJ (du champs NrRéfFournisseur) :
Private Sub NrRéfFournisseur_AfterUpdate()
Me.ListeNrRéfFournisseur.Visible = True
Me.ListeNrRéfFournisseur.Requery
Me.ListeNrRéfFournisseur.SetFocus
Me.ListeNrRéfFournisseur = Me.ListeNomProduit
Me.NrRéfFournisseur.Visible = False
End Sub
C'est ic que ça coince.
Il affiche bien la ligne du bon produit (cfr la colonne NomProduit) mais
le
NrRéfFournisseur reste vide.
Je pensais que le Requery referait le query et qu'il prendrait donc la
valeur.
Pour que la valeur soit prise en compte, je dois actuellement fermer et
rouvrir le formulaire.
Il doit exister un moyen, mais lequel ?
J'ai trouvé, pour ceux que cela intéresse : Il faut mettre DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 au début du MAJ du champs NrRéfFournisseur pour qu'il sauvegarde les données dans la table AVANT de faire le requery du combobox.
JM
"Jean-Marc" a écrit dans le message de news:
Salut à tous,
Dans le formulaire "produits" j'ai 2 combobox, une pour les noms de produits
et l'autre pour les nr réf produits (affiche le nr réf produit et le nomproduit). Il est donc ainsi possible de chercher un produit par son nom ou par son nr
réf. Comme il s'agit du nr réf chez le fournisseur, celui-ci est susceptible de changer. Son contenu est : SELECT [Produits].[RéfProduit], [Produits].[NrRéfFournisseur], [Produits].[NomProduit] FROM Produits ORDER BY [NrRéfFournisseur]; Limiter à liste : oui Sur absence dans liste : Private Sub ListeNrRéfFournisseur_NotInList(NewData As String, Response As Integer) If MsgBox("Ce numéro de référence n'existe pas dans la base de données." & Chr(10) & Chr(13) & "Voulez-vous introduire un nouveau numéro de référence ou modifier celui-ci ?", vbYesNo, "Erreur de numéro de référence") = vbYes Then Response = acDataErrContinue Me.ListeNrRéfFournisseur.Undo Me.NrRéfFournisseur.Visible = True Me.NrRéfFournisseur.SetFocus Me.ListeNrRéfFournisseur.Visible = False Else Response = acDataErrContinue Me.ListeNrRéfFournisseur.Undo End If End Sub
Tout cela fonctionne bien. Il est donc possible d'introduire un nouveau NrRéfFournisseur ou de modifier
l'actuel. Sur MAJ (du champs NrRéfFournisseur) : Private Sub NrRéfFournisseur_AfterUpdate() Me.ListeNrRéfFournisseur.Visible = True Me.ListeNrRéfFournisseur.Requery Me.ListeNrRéfFournisseur.SetFocus Me.ListeNrRéfFournisseur = Me.ListeNomProduit Me.NrRéfFournisseur.Visible = False End Sub
C'est ic que ça coince. Il affiche bien la ligne du bon produit (cfr la colonne NomProduit) mais le
NrRéfFournisseur reste vide. Je pensais que le Requery referait le query et qu'il prendrait donc la valeur. Pour que la valeur soit prise en compte, je dois actuellement fermer et rouvrir le formulaire. Il doit exister un moyen, mais lequel ?