Salut =E0 tous,
Encore merci =E0 eric pour l'info sur SetFocus et les Formulaires
Je pense que l'organigramme est bon mais j'ai un petit soucis avec le
*EOF*
-------- - > Comme pr=E9vu qui dit SetFocus dit DoCmd et acNext Donc EOF
=3D Bug
Msg -- - >"Erreur de compilation - Argument non facultatif"
Private Sub Nom_du_produit_Click()
' ---------------------D=E9claratino de variable
Dim ProduitSource As Integer
Dim ProduitDestin As Integer
' ----------------------Enregistrement des variables du Catalogue pour
copie dans la commande
ProduitSource =3D [Forms]![Jacky_Menu_Trie]![R=E9f Produit].Value
MsgBox ProduitSource, vbInformation, "R=E9f Produit CATALOGUE 2006"
'Test
' ----------------------Activation des Formulaires et du champ de
comparaison (Doublons)
DoCmd.OpenForm "Commandes"
Forms("Commandes")![Sous formulaire Commandes].SetFocus
Forms("Commandes")![Sous formulaire Commandes].Form![R=E9f
Produit].SetFocus
' ----------------------Placement au 1er Enregistrement de la commande
DoCmd.GoToRecord , , acFirst
' ----------------------Enregistrement de la variable Destination pour
comparaison
ProduitDestin =3D Forms("Commandes")![Sous formulaire
Commandes].Form![R=E9f Produit].Value
MsgBox ProduitDestin, vbMsgBoxHelpButton, "Ref Produit Commande"
'Test
' ----Debut Boucle-----
Do
' ----------------------Test Fin de Fichier
If **EOF** =3D True Then MsgBox "Fin de fichier", vbCritical, "TEST EOF"
If **EOF** =3D True Then Exit Sub
' ----------------------Test
If ProduitSource =3D ProduitDestin Then MsgBox "Doublon", vbCritical,
"Test Doublon"
If ProduitSource =3D ProduitDestin Then Exit Sub
DoCmd.GoToRecord , , acNext
=20
'----Fin de Boucle-----
Loop Until EOF =3D True
End Sub
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,
"jack"
| Comme prévu qui dit SetFocus dit DoCmd et acNext Donc EOF= Bug
Le bug est souvent assit en le dossier de chaise et le clavier ;-)
' ----Debut Boucle----- Do
' ----------------------Test Fin de Fichier If **EOF** = True Then MsgBox "Fin de fichier", vbCritical, "TEST EOF" If **EOF** = True Then Exit Sub
' ----------------------Test If ProduitSource = ProduitDestin Then MsgBox "Doublon", vbCritical, "Test Doublon" If ProduitSource = ProduitDestin Then Exit Sub DoCmd.GoToRecord , , acNext
'----Fin de Boucle----- Loop Until EOF = True End Sub
Non...
On teste le marqueur EOF sur un recordset :
rs.MoveNext rs.EOF
ou un fichier :
Line Input #1, strLine EOF(#1)
Pour un formulaire, le fait d'avancer au delà du dernier record ne renvoie pas un EOF mais une erreur... Erreur qu'il faut tester pour que Access n'envoie pas "son" MsgBox !
PS: Désolé de le dire comme cela, mais ce n'est pas du code "propre" que tu fait depuis le début... ce sont plutôt des commandes misent en file comme le ferait un enregistreur de macro! Si au final cela "peut" fonctionner, ce sera la croix et la bannière à faire évoluer et maintenir. Ceci dit sans méchanceté aucune...
| Comme prévu qui dit SetFocus dit DoCmd et acNext Donc EOF= Bug
Le bug est souvent assit en le dossier de chaise et le clavier ;-)
' ----Debut Boucle-----
Do
' ----------------------Test Fin de Fichier
If **EOF** = True Then MsgBox "Fin de fichier", vbCritical, "TEST EOF"
If **EOF** = True Then Exit Sub
' ----------------------Test
If ProduitSource = ProduitDestin Then MsgBox "Doublon", vbCritical,
"Test Doublon"
If ProduitSource = ProduitDestin Then Exit Sub
DoCmd.GoToRecord , , acNext
'----Fin de Boucle-----
Loop Until EOF = True
End Sub
Non...
On teste le marqueur EOF sur un recordset :
rs.MoveNext
rs.EOF
ou un fichier :
Line Input #1, strLine
EOF(#1)
Pour un formulaire, le fait d'avancer au delà du dernier record
ne renvoie pas un EOF mais une erreur...
Erreur qu'il faut tester pour que Access n'envoie pas "son" MsgBox !
PS:
Désolé de le dire comme cela, mais ce n'est pas du code "propre"
que tu fait depuis le début... ce sont plutôt des commandes
misent en file comme le ferait un enregistreur de macro!
Si au final cela "peut" fonctionner, ce sera la croix et la bannière
à faire évoluer et maintenir.
Ceci dit sans méchanceté aucune...
| Comme prévu qui dit SetFocus dit DoCmd et acNext Donc EOF= Bug
Le bug est souvent assit en le dossier de chaise et le clavier ;-)
' ----Debut Boucle----- Do
' ----------------------Test Fin de Fichier If **EOF** = True Then MsgBox "Fin de fichier", vbCritical, "TEST EOF" If **EOF** = True Then Exit Sub
' ----------------------Test If ProduitSource = ProduitDestin Then MsgBox "Doublon", vbCritical, "Test Doublon" If ProduitSource = ProduitDestin Then Exit Sub DoCmd.GoToRecord , , acNext
'----Fin de Boucle----- Loop Until EOF = True End Sub
Non...
On teste le marqueur EOF sur un recordset :
rs.MoveNext rs.EOF
ou un fichier :
Line Input #1, strLine EOF(#1)
Pour un formulaire, le fait d'avancer au delà du dernier record ne renvoie pas un EOF mais une erreur... Erreur qu'il faut tester pour que Access n'envoie pas "son" MsgBox !
PS: Désolé de le dire comme cela, mais ce n'est pas du code "propre" que tu fait depuis le début... ce sont plutôt des commandes misent en file comme le ferait un enregistreur de macro! Si au final cela "peut" fonctionner, ce sera la croix et la bannière à faire évoluer et maintenir. Ceci dit sans méchanceté aucune...
Pour mon problème, j'ai triché, puisque il me retourne erreur à la fin du fichier, pourquoi lui demander alors qu'il me le dit, on erreur GOTO.
Désolé pour mes méthodes, mais j'ai commencé sur du basic. Pas idéal, mais l'habitude quand je regarde une page de commande, je vois de suite l'organigramme et 5 6 ans plus tard, je peux revenir comme si c'était hier. En fait j'ai peu de programme à réaliser. La compléxité réside nettement plus dans l'élaboration des tables et surtout dans la présentation aux clients (qui doit etre le plus accessible possible, l'utilisation des formulaires représente 99% du temps). Plus un logiciel doit être ouvert et simple d'utilisation, plus le travail de conception en arriere est élaboré. Mon but optimiser mon rendement de 30%.
Pour mon problème, j'ai triché, puisque il me retourne erreur à la fin du
fichier, pourquoi lui demander alors qu'il me le dit, on erreur GOTO.
Désolé pour mes méthodes, mais j'ai commencé sur du basic. Pas idéal, mais
l'habitude quand je regarde une page de commande, je vois de suite
l'organigramme et 5 6 ans plus tard, je peux revenir comme si c'était hier.
En fait j'ai peu de programme à réaliser. La compléxité réside nettement
plus dans l'élaboration des tables et surtout dans la présentation aux
clients (qui doit etre le plus accessible possible, l'utilisation des
formulaires représente 99% du temps). Plus un logiciel doit être ouvert et
simple d'utilisation, plus le travail de conception en arriere est élaboré.
Mon but optimiser mon rendement de 30%.
Pour mon problème, j'ai triché, puisque il me retourne erreur à la fin du fichier, pourquoi lui demander alors qu'il me le dit, on erreur GOTO.
Désolé pour mes méthodes, mais j'ai commencé sur du basic. Pas idéal, mais l'habitude quand je regarde une page de commande, je vois de suite l'organigramme et 5 6 ans plus tard, je peux revenir comme si c'était hier. En fait j'ai peu de programme à réaliser. La compléxité réside nettement plus dans l'élaboration des tables et surtout dans la présentation aux clients (qui doit etre le plus accessible possible, l'utilisation des formulaires représente 99% du temps). Plus un logiciel doit être ouvert et simple d'utilisation, plus le travail de conception en arriere est élaboré. Mon but optimiser mon rendement de 30%.