|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour tout le monde,
Bon ca fait 3h aue je planche sur ce probleme j'espere que vous reussirez a m'aider. J'ai un formulaire, une listbox, et un bouton qui supprime le filtre : Code :
J'ai l'erreur "3021 No current record", sur la ligne Dirty = false, apres avoir vu le msgbox, en revenant dans le btnRemoveFilter. Si quelau'un a la moindre idee je suis preneur ! Merci! |
||
|
|
00
|
|
|
#2 | ||
|
Membre du Club
![]() |
Je viens de m'apercevoir que lorsque j'ouvre le formulaire a la main par la fenetre access (car jusqu'a maintenant je passais par un Docmd.openform),
le formulaire est automatiquement sur un nouveau record, et pas moyen de voir les record, meme encliqutn sur mon bouton filter :S Voila mon current : Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() |
Bonjour,
Ah le fameux inconvénient des formulaires "bindés" sur une table ou une requête... J'en suis revenu depuis, euh... je ne sais plus. Bref, une première remarque ici : j'écrirais plutôt Ensuite tu peux essayer ceci (je ne suis pas en mesure de tester et de plus, je n'utilise jamais la propriété filter de par ce que j'ai stipulé ci-avant) : Code :
P.S. Parfois, le Me.Dirty renvoie True alors que rien en apparence a changé. C'est pourquoi il est préférable d'avoir une variable Boolean de module qui prend la valeur True sur l'événement Change() ou AfterUpdate()des contrôles susceptibles d'être mis à jour sur l'enregistrement en cours et de la remettre à False sur l'événement Current().
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() |
J'obtiens
Erreur 2046 : The command or action saverecord isn't available now sur DoCmd.RunCommand acCmdSaveRecord Je vais mettre en place le remplacant le dirty ... Voila je viens de creer une variable module boolean booChange, qui passe a true sur les afterupdate des champs cela devient donc : Code :
Et donc, toujours le meme probleme si j'ouvre le formulaire il se place directement sur un newrecord et cette fois l'erreur est sur ShowAllRecords |
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
Bon je viens de resoudre en partie mon probleme,
je ne sais pour quelle raison la propriete DataEntry etait passe a Yes :S En la passant a No, cela s'arrange en partie. Si je ne renseigne pas le champ obligatoire, il maffiche bien le message d'alerte, mais apres c'est une erreur 2501 The runcommand was cancelled ? |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() |
Ceci dit, la méthode ShowAllRecords supprime les filtres existants sur le formulaire dont, tu peux te contenter ce cette instruction :
Mais ça ne marchera pas si tu es sur un nouvel enregistrement (erreur 2046) de même qu'un GoToRecord... Perso, ce que je fais, je mets en place une fonction qui se nomme quelque chose comme RecordIsSaveable() ; cette dernière vérifie tous les champs (selon le NULL property possible) et si elle renvoie True alors l'enregistrement (nouveau ou existant) subi un INSERT INTO ou un UPDATE par la méthode Execute du fait que je bannis systématiquement l'objet DoCmd lorsqu'il s'agit de manipuler des données. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() |
Etant donne que j'ai pas trop envie de reprendre toute la structure de mon form, je vais me contenter de conserver mon "bindage" avec ma table, et avant d'effectuer une action verifier si on a pu sauvegarder par cette fonction save()
Code :
|
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() |
Code :
et je n'ai pas trouve la solution pour contrecarre cela
Pas de Dirty donc pas de souci. Un bouton Save et un bouton Cancel. Mais comme tu dis si bien, les rustines font foi dans le monde ingrat des développeurs ; tout dépend comment on aime se prendre la tête au présent et dans le futur. Moi j'ai choisi et je ne le regrette pas Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
J'y penserai pour mes prochains developpement
Merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com