Dans le cadre de la nouvelle année, la base de données qui gère les congés des agents de l'entreprise où je fais mon apprentissage doit être renouvelé comme tous les ans avec un bouton "Nouvelle année". Or, cette année, cette commande ne fonctionne pas. Dans un premier temps, j'ai ouvert en mode création le bouton, dans l'onglet "Données", le bouton n'était pas activé. Après l'avoir activé et avoir cliqué sur Nouvelle année, il attendait que je lui renseigner deux paramètres. J'ai supprimé ces 2 paramètres dans le code VBA (ma collègue m'ayant dit qu'elle ne rentre jamais rien généralement).
Private Sub Test_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "Récapitulatif"
Dim MaBD As Database, MaTable As Recordset, MaTable1 As Recordset
Set MaBD = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBD.OpenRecordset("Agents", DB_OPEN_TABLE)
Set MaTable1 = MaBD.OpenRecordset("Etat récapitulatif", DB_OPEN_TABLE)
MaTable.MoveFirst
Annarch = DatePart("yyyy", MaTable![Date_arch])
Anndate = DatePart("yyyy", Date)
If Annarch = Anndate Then
msg = "L'opération de début d'année a déjà été effectuée."
MsgBox msg
GoTo fin3
End If
Do Until MaTable.EOF
nbann = 0
MaTable1.MoveFirst
Do Until MaTable1.EOF
If MaTable![Num_agent] = MaTable1![Num_agent] Then
nbann = MaTable1![Nbre_jour] + (MaTable1![SommeDeNbre_jour1] - MaTable1![SommeDeNbre_jour2])
MaTable.Edit
MaTable![Nbre_jour] = nbann
MaTable![C_annuel] = 0#
MaTable![C_hiver] = 0#
MaTable![C_HP] = 0#
MaTable![Nouv_agent] = 0
MaTable![Date_arch] = Date
MaTable.Update
End If
MaTable1.MoveNext
Loop
MaTable.MoveNext
Loop
msg = "L'opération de début d'année a été effectuée !!!"
MsgBox msg
fin3:
MaTable1.Close
MaTable.Close
MaBD.Close
End Sub
Désormais le message "L'opération de début d'année a été effectuée !!!", s'affiche bien mais quand j'édite une fiche de congé, il n'y a pas un trait qui sépare l'année précédente de la nouvelle année.
Merci d'avance pour vos réponses, j'avoue que je suis pas très doué en programmation, mais là je vois pas trop car le code à l'air pas mal.
A voir également:
Problème sur l'édition d'une nouvelle année pour les congés
Ma collègue qui gère les congés me disait que quand elle cliquait sur Nouvelle année, un trait séparait l'ancienne année et la nouvelle année, et les soldes étaient à 0.
En effet, le code initialise les champs des tables.
J'édite une fiche de congés sur mon formulaire "Menu Général" qui me permet entre autre de cliquer sur le bouton Nouvelle année, de gérer les congés, les agents ayant droit au congés ... etc
Vu de mon cote, si avec le changement de cette annee (2014) il n'y a pas de "trait", c'est qu'il n'y en a jamais eu ou quelqu'un modifie quelque chose entre temps. Regardez dans le code formulaire "Menu Général" ,si par hazard il y a du code
Oui, il y a :
soit du code VBA, soit des macros incorporees "derriere" les boutons. Clic droit sur un des boutons, propriete, evenements pour voir ou plus simple pour le VBA: appuyez sur alt+F11 pour ouvrir le VBA et double clic sur formulaire "Menu Général" en haut a gauche.
En faisant alt f11, j'ai bien toutes les procédures événementielles qui sont sur le menu général dont celle qui concerne le bouton "Nouvelle année" activable par un clic de souris (dans les propriétés du bouton, la procédure est bien sur le clic de souris, pas de problème de ce côté là).
En effet, le code initialise les champs des tables.
J'édite une fiche de congés sur mon formulaire "Menu Général" qui me permet entre autre de cliquer sur le bouton Nouvelle année, de gérer les congés, les agents ayant droit au congés ... etc
Vu de mon cote, si avec le changement de cette annee (2014) il n'y a pas de "trait", c'est qu'il n'y en a jamais eu ou quelqu'un modifie quelque chose entre temps. Regardez dans le code formulaire "Menu Général" ,si par hazard il y a du code
A+
https://www.cjoint.com/?3AEnEqKNV7z
Oui, il y a :
soit du code VBA, soit des macros incorporees "derriere" les boutons. Clic droit sur un des boutons, propriete, evenements pour voir ou plus simple pour le VBA: appuyez sur alt+F11 pour ouvrir le VBA et double clic sur formulaire "Menu Général" en haut a gauche.