Bonjour je suis nouveau sur ce forum. Je suis automaticien et plus axé sur les automates programmables et les logiciels IHM.
Depuis le mois de juin j'ai décidé de suivre une formation pour utilisé ACCESS via mes heures de DIF, j'avais vu un peu les SGBD lors de mes études mais c"est très loin !! J'ai fait 3 jours "initiation" ou on voit la base d'Access et 3 jours plus spécialisés dans la partie automatisation et VBA. Il me reste 2 jours à faire fin septembre.
Voila pour les présentations, maintenant passons à mon problème dans un formulaire de consultation d'une table j'ai un bouton suivant et précédent pour parcourir les enregistrements pour une modification éventuelle.
Les bouton suivant et précédent test les variables acFirst et acLast pout tester si l'on est au dernier enregistrement. Si c'est le cas mesBox d'avertissement et disparition du bouton concerné.
Cela marche sauf que pour la variable acFirst (premier) cela marche. Mais pour acLast pour une raison que je n'explique je ne vais pas jusqu'au dernier enregistrement valide ????
Je me suis donc rabattu sur la variable MaxRecords j'ai repris l'exemple donné par l'aide de VBA mais systématiquement j'ai une erreur erreur exécution 2455 " La référence d'une expression MaxRecords n'est pas valide" ?
Voici la portion de code concernée :
La syntaxe utilisée pour récupérer maxRecords est celle donnée dans l'aide VBA. La variable maxi est déclarée en tête de module après Option compare afin d'être public pour tout le module, et notamment dans la procedure évènementielle du bouton suivant. Je bute sur ce problème depuis 3 jours si quelqu'un peu m'aider soit sur le probleme MaxRecords soit pourquoi acLast ne pointe pas réellement sur le dernier enregistrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10Private Sub Form_Open(Cancel As Integer) ' a L'ouverture du formulaire Dim monformulaire As Form Set monformulaire = Forms("FModifsPiecesStockElec") 'Initialisation du formulaire DoCmd.OpenForm ("FModifsPiecesStockElec") ' ouverture du formulaire maxi = Forms("FModifsPiecesStockElec").MaxRecords ChangeCouleur (Me) ' Change les couleurs des etiquettes des cases à cocher DoCmd.GoToRecord , , acFirst ' on pointe sur le premier enregistrement End Sub
Merci d'avance








Répondre avec citation


Seulement il ne faut pas utiliser la propriété me.précèdent.visible true/false qui génere une erreur 2165 "impossible de masquer le control actif" la parade j'ai pris la propriété Transparent qui fait aussi apparaitre ou disparaitre le bouton mais sans généré d'erreur.



Partager