Problème sur l'édition d'une nouvelle année pour les congés
kim57
Messages postés
404
Statut
Membre
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
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.
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
- Darkino nouvelle adresse - Guide
- Extreme download nouvelle adresse - Accueil - Outils
- Everest home edition - Télécharger - Informations & Diagnostic
- Superantispyware free edition - Télécharger - Antivirus & Antimalwares
- Planning congés - Guide
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.