Mes création MS Access à la DDAF :
Retour
Ici sont présentées des applications que j'ai écrit en VBA sous Microsoft Access 97, 2000 et 2003 à la DDAF de Niort.
Un logiciel souvent mentionné du nom de PACAGE, est l'utilitaire officiel de saisie et de contrôle des dossiers d'aide financière aux Agriculteurs. Les données ne m'étaient disponible que via Business Object.
Ici ne seront pas présentées toutes les applications écritent à la DDAF. Celles-ci sont toutes basées sur une base de données Microsoft Access coté serveur, une interface sous MS Access en local coté utilisateur (juste des formulaires et du code VBA), les états sous MS Word et les statistiques sous MS Excel (tous automatisés, communication via les automations). Tous les formulaires et leurs actions, l'accès au données ou toutes autre actions de l'application étaient géré en VBA.
Voici donc 4 des applications écritent à la DDAF,
de la plus simple à la plus complexe :
Gestion de l'instruction des dossiers et de l'envoi de courriers
Via la base de données PACAGE, simplification de l'envoi des courriers en fonction de fiches d'instruction de dossiers fait sous l'application via l'identifiant de l'agriculteur. Plusieurs applications ont été développées dans ce style, notamment pour la prime à l'abattage et la cartographie du parcellaire.
Gestionnaire d'historique
A des fin de calcul des nouveaux droits, suite à des changements de la PAC, il était nécessaire de pouvoir consulter l'historique des surfaces, l'historique d'appartenance des terrains en fonction du cadastre, de calculer une moyenne de surface, de retrouver le propriétaire d'une parcelle en fonction de l'année, de connaître l'historique des associés d'une entreprise sur une période bien précise et divers autres critères. L'application se chargeait alors de réunir et lier ces informations et afficher un historique sur une chronologie de 5ans en affichant les divers propriétaires, surfaces... simplement et rapidement, ce que le logiciel PACAGE ne permettait pas (juste quelques sorties de liste illisibles pour des minutes ou des heures de créations). Cette application permettait instantanément de sortir les diverses informations voulus via l'identifiant de l'agriculteur.
Amélioration et simplification de l'instruction des CTE
Application très mal faite étant donnée que l'on ne m'accordait pas encore toutes confiances lors des débuts du développement de ce petit projet. Le logiciel commençait par éviter toutes les récritures manuelles de dizaines de lignes par dossiers et passer par de simples cases à cocher (gain de temps de 30 min sur 40 par dossier). Ces lignes correspondaient à la vérification de l'engagement de certaines surfaces dans certaines façons culturales. Cependant, des changements pouvaient opérer, et chaque année, il était impératif de reprendre et ré analyser le dossier pour y trouver la modification de contrât. L'application fût donc améliorée pour intégrer l'évolution des contrats. Par la suite, il fût ajouter un système de gestion des factures pour simplifier l'étude des budgets accordés sur des investissements entrant dans le cadre de la mesure CTE. Une fois encore, l'aide de l'application fit gagner beaucoup de temps. Coût de l'opération : 7 à 15 jours de développement très éparpillés et éviter d'employer 2 personnes pendant 4 à 6 mois, l'opération est maintenant faite seulement par la secrétaire du responsable des CTE auparavant assistée.
Aide à l'instruction des dossiers d'aide rotationnelle
Ce fût la plus complexe et la dernière de mes applications. L'explication sera donc plus complète.
Cette application a été développée dans le cadre d’une aide financière aux agriculteurs pour favoriser la rotation des cultures afin de diminuer les apports d’engrais et produits chimiques.
Attention : L'explication ne reprend les données exactes. Les contraintes de rotations messionnées si dessous ne sont soit exactes soit des approximations de la réalité à titre d'exemple et afin de montrer la complexité de l'application.
Explication de la rotation :
La rotation des cultures consiste à changer la culture semée ou plantée tous les ans. Dans certains cas, on observe des monocultures, ceci entraîne le développement excéssif de certaines maladies, de certaines plantes et un appauvrissement du sol pour certains minéraux. La rotation permet dlimiter tout cela.
Le principe :
Les cultures sont classées dans plusieurs catégories ou espèces (en rapport avec les maladies, besoins minéraux….)
On retrouve donc des catégories comme celles ci :
- Céréales
- Maïs
- Oléagineux
- Protéagineux
- Prairies temporaires
- Prairies permanentes…
Il a donc été établi un cahier des charges avec des restrictions permettant de faire suivre ou non certaines cultures ainsi que le nombre d’années ou la culture est autorisée.
Exemples :
Les céréales sont autorisées 3 fois consécutives à condition que celle ci soit différentes.
L’orge et le blé sont deux céréales :
- Blé >> Orge >> Blé >> Autres cultures non-céréales >>Autorisée
- Blé >> Blé >> Orge >> Autres cultures non-céréales >> Non Autorisée
- Blé >> Orge >> Blé >> Orge >> Non Autorisée
Exemple visuelle :
(Cliquez sur l'image pour agrandir)
Voici d’autres contraintes :
- Pas plus de 2 ans pour le Maïs, pas plus de 2 Maïs en 5 ans
- 4 ans pour la prairie temporaire, au bout de 5 ans, elle passe en Prairie Naturelle
- 5 ans et plus pour une Prairie Permanente
- etc.
Ce contrat dur 5 ans. Chaque année, l’agriculteur dépose un dossier papier qui est enregistré sur un logiciel spécial de l’administration (Pacage)
Cela représente 7000 dossiers.
Ces dossiers contiennent une liste complète des parcelles agricoles avec leurs surfaces respectives dans chacune des cultures. Un dossier contient environs 100 lignes de parcellaire.
L’agriculteur peut donc engager la totalité de son parcellaire dans cette mesure de rotation ou seulement une partie en respectant les conditions suivantes :
Une parcelle engagée ne peut plus être désengagée (sauf cas très exceptionnel…)
L’agriculteur ne peut pas être engagé des surfaces non éligibles aux aides financières traditionnelles
L’agriculteur doit engager un minimum de 75% de sa surface éligible
Il devra conserver ce chiffre de 75% minimum, même en cas d’agrandissement, et devra donc augmenter sa surface engagée et reprendre tout son contrat pour une durée de 5 ans.
L’application :
Celle ci se base sur les données du logiciel PACAGE. Dans PACAGE, les parcelles engagées sont repérées par un champ AR (Aide rotationnelle) par une case à cochée Oui / Non.
Voici l’exemple de ligne de parcellaire en base de données (simplifiée) :
- 790034983 - 2007 - 1 - BT – A – 5,78 - 0
- 790034983 - 2007 - 1 - BT – A – 4,5 - 1
- 790034983 - 2007 - 1 - OP – A – 4,9 – 1
Ici, on a la grande parcelle “1” divisée en 3 parties en 2007 pour l’agriculteur 790034983 :
Une en blé tendre (céréale) pour 5,78 hectares non engagés en aide rotationnelle
Une en blé tendre (céréale) pour 4,5 hectares engagés en aide rotationnelle
Une en Orge de Printemps (céréale) pour 4,9 hectares engagés en aide rotationnelle
L’application récupère ses données au format CSV via Business Object.
Le principe est que le logiciel démarre BO, actualise les données, enregistre au format CSV et met à jour les nouvelles lignes ou lignes modifiés dans une base de données Access sans aucune action de l’utilisateur, ni sur BO, ni sur le fichier CSV, ni sur Access (Sauf un clic sur le bouton "Mise à jour " )
Une fois cela fait, un rapport est sorti pour afficher les numéros de parcelles dont l’arrangement a changé pour chaque agriculteur.
Ensuite logiciel pourrait faire la vérification des rotations seule, mais le problème est que les agriculteurs peuvent bouger leurs découpages de façon aléatoire.
On a donc une phase de mise en relation des divisions, pour chaque année, faite par le contrôleur humain.
Exemple :
- 790034983 - 2006 - 1 - OL – A – 4,4 - 1
- 790034983 - 2006 - 1 - MA – A – 5 – 1
- 790034983 - 2007 - 1 - BT – A – 4,5 - 1
- 790034983 - 2007 - 1 - OP – A – 4,9 - 1
C’est donc en saisie qu’une relation est faite pour associer les parcelles de la manière la plus logique et garder une relation sur les années. On pourrait donc déduire en saisie la rotation suivante :
Sur 4,4 ha -> OL -> BT
Sur 0,1 ha -> MA -> BT
Sur 4,9 ha -> MA -> OP
Et chaque année, la saisie se complique (l’instructeur ne déduit pas forcement seul, il y a un suivi fait par l’agriculteur et contrôlé sur le terrain demandé pour les cas compliqués)
Rôles de l’application lors de la saisie des rotations :
- Indiquer les erreurs de rotations
- Tenter de résoudre la rotation seule
- Afficher les rotations déjà saisies les années précédentes et ajouter à la suite
- Détecter les erreurs de surfaces
- Détecter les erreurs de saisie
Après la saisie :
Sortie d’un bordereau sous Excel, pour indiquer la fin de la saisie et le stockage dans son dossier papier. Celui ci contient toutes les rotations et leurs logiques de rotations ainsi que les informations de la personne suivant le dossier.
L’envoi des courriers avec le récapitulatif des erreurs ou la demande de justificatifs spéciaux.
Ces courriers doivent sortir sous Word doivent être totalement personnalisable (même l’affichage de l’erreur).
Conclusion :
Tout cela doit être TRES TRES TRES TRES simple, l’instructeur ne touche ni à BO, ni à Word et ne touche pas directement la base de données.
La saisie se fait soit par double clics soit par drag and drop, tout à la souris.
La base de données est placée sur le serveur, et la communication avec le client avec ADO. Aucune action n’est pas gérée via VBA
La base de données devra permettre de stocker 20 millions de lignes dans les 5ans.

