1 pièce(s) jointe(s)
Création de plusieurs enregistrements selon un critère
bonjour
j'utilise un logiciel de pointage dont les états et leur contenus ne sont pas intuitifs et ne répondent pas a mon besoin, les données de ce logitiel son stockées dan des table access, mon problème est le suivant : est il possible de créer plusieurs enregistrements dans une table access a partir d'un formulaire ou requête pour avoir ce qui suit:
Pièce jointe 457204
c a d dans le formulaire on se contente de saisiri la première date de STARTSPECDAY (12/06/2018) et la derniere (28/06/2018) et tout le reste inchangé pour qu'il me crée les 17 enregistrements (ici 17 est le nombre de jours de congé octroyés et ça peut excéder ce nombre donc vous voyez que c'est fastidieux de les créer manuellement un a un)
et merci pour votre aide et patience
Création de plusieurs enregistrements selon un critère
merci infiniment pour votre réponse et vos précieux conseils
sauf que je ne suis pas accro en VBA j'essaie par le learning by doing
DATEID n'est pas une constante c'est une variable elle peut avoir les valeurs 1 ou 2 ou 3 selon le type de congé
YUANYING n'est pas constant c'est un numéro d'enregistrement
avec meilleures sls
Création de plusieurs enregistrements selon un critère
je vous remercie pour votre réponse, je l'attendais avec impatience
voila concernant DATEID est une variable numérique elle prend la valeur 1 ou 2 ou 3 selon le type de congé (annuel, maladie ou exceptionnel) elle sera traduite dans les requêtes par le texte (annuel , exceptionnel ou maladie)
pour la variable YUANYING est une variable texte et n'est pas séquentielle c'est une donnée exogène attribuée au bureau d'ordre et qu'on se contente de saisir au formulaire, la table source étant USER_SPEDAY
meilleures slts
Création de plusieurs enregistrements selon un critère
bonjour,
merci pour votre réponse,
ce sont mes premiers pas dans le VBA sur lequel je vais m'incliner ultérieurement
j'ai essayé le code avec de minimes modif mais un message d'erreur apparait "argument ou appel de procédure incorrect"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Private Sub Commande12_Click()
Public Sub AjouterPointage(prmUserId As Long, prmDateDebut As Date, prmDateFin As Date, prmType As Long, prmNumDate As String, prmYUANYING As String)
Dim db As dao.database: Set db = CurrentDb
Dim r As dao.Recordset: Set r = db.openrecordset(USER_SPEDAY, dbOpenDynaset)
Dim iDate As Date: For iDate = prmDateDebut To prmDateFin
r.AddNew
r![UserID] = prmUserId
r![StartSpecDay] = iDate
r![StartSpecDay] = iDate + TimeSerial(23, 59, 59)
r![DateId] = prmType
r![YUANYING] = prmYUANYING
r![Date] = Now()
r.Update
Next iDate
r.Close: Set r = Nothing
db.Close: Set db = Nothing
End Sub
End Sub |
je n'ai pas pu identifier l'erreur et j'essaie de franchir cette étape.
avec meilleures slts
Création de plusieurs enregistrements selon un critère
bonjour,
je vous remercie encore
j'ai suivi vos conseil sauf que rien ne marche, étant débutant en VBA, apparemment le problème est une mauvaise conception de ma part ou une omission quelconque. Ce que j'ai fait:
j'ai crée un formulaire vierge auquel j'ai crée autant de champs contenus dans la table ensuite j'ai nommé ces champs prmUserId , prmDateDebut , prmDateFin , prmType , prmNumDate
ensuite, j'ai crée un bouton dans ce formulaire, dans l'enlèvement j'ai choisi code et j'ai collé ce code dans l’éditeur de codes en remplaçant "NomTaSource" par "USER_SPEDAY" tout en enregistrant avant de fermer l’éditeur
ensuite en cliquant sur le bouton du formulaire, rien ne se passe et cela même après actualisation.
meilleures slts
Création de plusieurs enregistrements selon un critère
bonjour et bon lundi
je vous poste ci-joint par lien ma base allégée avec formulaire
https://1drv.ms/u/s!AiB43akeGPZw2nhpdSRyLtJqoFA4
slts
1 pièce(s) jointe(s)
Création de plusieurs enregistrements selon un critère
rebonjour
capture formulaire
Pièce jointe 459015
ci-joint le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Private Sub Commande10_Click()
Public Sub AjouterPointage(prmUserId As Long, prmDateDebut As Date, prmDateFin As Date, prmType As Long, prmNumDate As String)
Dim db As dao.database: Set db = CurrentDb
Dim r As dao.Recordset: Set r = db.openrecordset("USER_SPEDAY", dbOpenDynaset)
Dim iDate As Date: For iDate = prmDateDebut To prmDateFin
r.AddNew
r![UserID] = prmUserId
r![StartSpecDay] = iDate
r![StartSpecDay] = iDate + TimeSerial(23, 59, 59)
r![DateId] = prmType
r![YuanYuin] = prmNumDate
r![Date] = Now()
r.Update
Next iDate
r.Close: Set r = Nothing
db.Close: Set db = Nothing
End Sub
End Sub |
slts
1 pièce(s) jointe(s)
Création de plusieurs enregistrements selon un critère
bonjour,
j'ai essaie ce code il fonctionne bien sauf que je souhaite que la saisie des données soit par le biais du formulaire et non pas avec des msgbox
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Private Sub Commande0_Click()
Dim prmUserId As Long, prmDateDebut As Date, prmType As Long, prmDateFin As Date, prmYUANYING As String
Dim db As dao.Database: Set db = CurrentDb
Dim r As dao.Recordset: Set r = db.OpenRecordset("USER_SPEDAY", dbOpenDynaset)
prmUserId = InputBox("USER ID ? ")
prmDateDebut = InputBox(" entrer date debut ")
prmDateFin = InputBox(" entrer date fin ")
prmType = InputBox(" type")
prmYUANYING = InputBox("entregistrement")
Dim iDate As Date: For iDate = prmDateDebut To prmDateFin
r.AddNew
r![UserID] = prmUserId
r![StartSpecDay] = iDate
r![ENDSPECDAY] = iDate
r![StartSpecDay] = iDate + 1
r![ENDSPECDAY] = iDate + 1
r![DateId] = prmType
r![YUANYING] = prmYUANYING
r![Date] = Now()
r.Update
Next iDate
r.Close: Set r = Nothing
db.Close: Set db = Nothing
End Sub |
il parait que le code ne se référè pas aux données saisies dans le formulaire dont je joins une capture avec ses propriétés
Pièce jointe 461445
meilleures slts
Création de plusieurs enregistrements selon un critère
merci infiniment pour votre assistance
j'ai essaie ce code il est efficace:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Private Sub executer_Click()
Dim prmUserId As Long, prmDateDebut As Date, prmDateFin As Date, prmYUANYING As String
Dim db As dao.Database: Set db = CurrentDb
Dim r As dao.Recordset: Set r = db.OpenRecordset("USER_SPEDAY", dbOpenDynaset)
prmUserId = Forms("Formulaire1").Controls("prUserId").Value
prmDateDebut = Forms("Formulaire1").Controls("prDateDebut").Value
prmDateFin = Forms("Formulaire1").Controls("prDateFin").Value
prmYUANYING = Forms("Formulaire1").Controls("prYUANYING").Value
Dim iDate As Date: For iDate = prmDateDebut To prmDateFin
r.AddNew
r![UserId] = prmUserId
r![StartSpecDay] = iDate
r![ENDSPECDAY] = iDate
r![ENDSPECDAY] = iDate
r![DateId] = 2
r![YUANYING] = prmYUANYING
r![Date] = Now()
r.Update
Next iDate
r.Close: Set r = Nothing
db.Close: Set db = Nothing
End Sub |
avez vous des conseils pour le simplifier
j'ai pas encore essayé Me.
a bientôt