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 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 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.
1 réponse
-
Bonjour,
Pourquoi voulez vous qu'il y ait un trait entre les deux annees ?????
Le code ne fait qu'initialiser des champs de tables
quand j'édite une fiche de congé, Avec quoi ????-
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 -
-
Le menu général ressemble à ça, ce sera peut-plus clair pour vous:
https://www.cjoint.com/?3AEnEqKNV7z -
-
-