Access, valeur dans le premier enregistrement
spiritspy
Messages postés
120
Statut
Membre
-
Jean_Jacques Messages postés 1048 Statut Membre -
Jean_Jacques Messages postés 1048 Statut Membre -
Bonjour,
En créant ma base access, j'ai un numéro d'ordre a donner à chaque enregistrement, mais il se trouve que lorsque je valide la fonction suivante, elle se place sur le premier enregistrement et pas sur l'enregistrement courant, quelle est la modif à faire svp?
Num_Affaire = "Dossier" & Format([Date_Ouverture], "yyyy") & "-" & [N_Annuel]
N_Annuel est mon numéro à ajouter a cette concaténation, Num_Affaire est mon champs, mais apparemment il me manque quelque chose de façon à lui préciser que c'est celui de l'enregistrement en cours.
Merci d'avance.
En créant ma base access, j'ai un numéro d'ordre a donner à chaque enregistrement, mais il se trouve que lorsque je valide la fonction suivante, elle se place sur le premier enregistrement et pas sur l'enregistrement courant, quelle est la modif à faire svp?
Num_Affaire = "Dossier" & Format([Date_Ouverture], "yyyy") & "-" & [N_Annuel]
N_Annuel est mon numéro à ajouter a cette concaténation, Num_Affaire est mon champs, mais apparemment il me manque quelque chose de façon à lui préciser que c'est celui de l'enregistrement en cours.
Merci d'avance.
A voir également:
- Access, valeur dans le premier enregistrement
- Erreur lors de l'enregistrement du contact - Forum Xiaomi
- Acer quick access - Forum Logiciels
- Quick Access service ✓ - Forum PC portable
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Access runtime ✓ - Forum Access
9 réponses
J'explique mieux:
Je viens de créer un dossier (enregistrement) avec des données principales comme un nom de client, une adresse et ce que j'ai indiqué avant [qui est un numéro d'ordre annuel (dynamique)] Num_Affaire que j'ai créé, et une requête de calcul sur le nombre d'enregistrement depuis le début de l'année pour N_Annuel.
Je suis dans mon formulaire principal, avec la valeur Num_Affaire non modifiable manuellement, que ma ligne de commande ci-dessus modifie lorsque j'appuie sur mon bouton "créer Dossier".
Il compte très bien le nombre d'enregistrement mais me l'inscrit dans le champ du premier enregistrement et non dans le champ de l'enregistrement en cours de création.
Suis je assez clair pour que tu m'aide ?
Merci d'avance.
Je viens de créer un dossier (enregistrement) avec des données principales comme un nom de client, une adresse et ce que j'ai indiqué avant [qui est un numéro d'ordre annuel (dynamique)] Num_Affaire que j'ai créé, et une requête de calcul sur le nombre d'enregistrement depuis le début de l'année pour N_Annuel.
Je suis dans mon formulaire principal, avec la valeur Num_Affaire non modifiable manuellement, que ma ligne de commande ci-dessus modifie lorsque j'appuie sur mon bouton "créer Dossier".
Il compte très bien le nombre d'enregistrement mais me l'inscrit dans le champ du premier enregistrement et non dans le champ de l'enregistrement en cours de création.
Suis je assez clair pour que tu m'aide ?
Merci d'avance.
C'est très bizarre, ce que tu me dis. Ca ne devrait pas faire ça.
On est bien d'accord que la ligne que tu as écrite plus haut est dans la propriété Sur clic du bouton qui se trouve dans le formulaire?
Si oui, y a-t-il d'autres lignes de commande avant cette ligne-là???
On est bien d'accord que la ligne que tu as écrite plus haut est dans la propriété Sur clic du bouton qui se trouve dans le formulaire?
Si oui, y a-t-il d'autres lignes de commande avant cette ligne-là???
Effectivement il est sur le clic du bouton, je peux même t'indiquer les lignes précédemment écrites sous cette même fonction:
Private Sub Creation_Dossier_Click()
Me.Requery
' Vérif et incrémentation de N_Annuel
If DLookup("[NbEnr]", "R_Dossier") + 1 >= 1 Then
N_Annuel = DLookup("[NbEnr]", "R_Dossier") + 1
Else
N_Annuel = 1
End If
' Affectation de la valeur à Num_Affaire qui est mon numéro de dossier
Num_Affaire = "Dossier" & Format([Date_Ouverture], "yyyy") & "-" & [N_Annuel]
' Création de la box affichant le numéro de dossier sous la forme "Dossier2008-24"
MsgBox "Le Dossier créé est le " & Num_Affaire, vbInformation, "Dossier Créé"
End Sub
La fonction est bonne, elle calcule très bien en fonction du nombre d'enregistrements depuis le début de l'année (ou plutôt le nombre d'enregistrement dont l'année est la même) et me l'affiche.
Mais mon problème c'est que ça ne sauvegarde pas dans le champ de l'enregistrement en cours dans mon formulaire.
Est-ce que je dois définir que ce champs est celui de l'enregistrement en cours? et comment faire?
Merci d'avance.
Private Sub Creation_Dossier_Click()
Me.Requery
' Vérif et incrémentation de N_Annuel
If DLookup("[NbEnr]", "R_Dossier") + 1 >= 1 Then
N_Annuel = DLookup("[NbEnr]", "R_Dossier") + 1
Else
N_Annuel = 1
End If
' Affectation de la valeur à Num_Affaire qui est mon numéro de dossier
Num_Affaire = "Dossier" & Format([Date_Ouverture], "yyyy") & "-" & [N_Annuel]
' Création de la box affichant le numéro de dossier sous la forme "Dossier2008-24"
MsgBox "Le Dossier créé est le " & Num_Affaire, vbInformation, "Dossier Créé"
End Sub
La fonction est bonne, elle calcule très bien en fonction du nombre d'enregistrements depuis le début de l'année (ou plutôt le nombre d'enregistrement dont l'année est la même) et me l'affiche.
Mais mon problème c'est que ça ne sauvegarde pas dans le champ de l'enregistrement en cours dans mon formulaire.
Est-ce que je dois définir que ce champs est celui de l'enregistrement en cours? et comment faire?
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Il semble nécessaire de désigner l'enregistrement cible explicitement
A essayer sans garantie :
Dim StLinkCriteriA As String
StLinkCriteriA = "[<Table.Champ>]=" & Me![<Table.champ>]
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Il semble nécessaire de désigner l'enregistrement cible explicitement
A essayer sans garantie :
Dim StLinkCriteriA As String
StLinkCriteriA = "[<Table.Champ>]=" & Me![<Table.champ>]
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Ca change effectivement quelque chose, ça me met bien le num de dossier mais je suis décalé de 1, j'explique :
dès que j'ouvre mon formulaire je suis sur un enregistrement neuf, avec le numéro créé juste avant en fait ... et ma box ne m'affiche plus le bon numéro de dossier, ça devient compliqué .....
donc je remplis le bon formulaire avec un numéro déjà affecté et quand je valide, ça m'affiche le numéro du dossier suivant ...
C'est en très bonne voie mon truc .... un dernier soutient et je me rapproche de quelque chose de sympa ...
Merci d'avance.
dès que j'ouvre mon formulaire je suis sur un enregistrement neuf, avec le numéro créé juste avant en fait ... et ma box ne m'affiche plus le bon numéro de dossier, ça devient compliqué .....
donc je remplis le bon formulaire avec un numéro déjà affecté et quand je valide, ça m'affiche le numéro du dossier suivant ...
C'est en très bonne voie mon truc .... un dernier soutient et je me rapproche de quelque chose de sympa ...
Merci d'avance.
Bonjour,
En fouinant sur internet, j'ai trouvé cette solution.
- Dans ce cas de figure, le lien se fait avant d'activer le formulaire. J'ose supposer que ça devrait marcher ?
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "<Nom_Formulaire"
stLinkCriteria = "[<champ>]=" & "'" & Me![champ] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
En fouinant sur internet, j'ai trouvé cette solution.
- Dans ce cas de figure, le lien se fait avant d'activer le formulaire. J'ose supposer que ça devrait marcher ?
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "<Nom_Formulaire"
stLinkCriteria = "[<champ>]=" & "'" & Me![champ] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Bonjour,
J'ai mis cette commande dans un formulaire "d'accueil' sur un bouton pour ouvrir mon formulaire
J'ai modifié et simplifié en faisant
stLinkCriteria = "[<Table.champ>]=" & Me![<Table.champ>]
Le reste m'était apparemment inutile ...
Mais il ne trouve pas le Champ de référence.
Le <champ> est bien mon numéro auto ? ou j'ai rien compris ?
J'ai mis cette commande dans un formulaire "d'accueil' sur un bouton pour ouvrir mon formulaire
J'ai modifié et simplifié en faisant
stLinkCriteria = "[<Table.champ>]=" & Me![<Table.champ>]
Le reste m'était apparemment inutile ...
Mais il ne trouve pas le Champ de référence.
Le <champ> est bien mon numéro auto ? ou j'ai rien compris ?
Bonjour,
stLinkCriteria ne semble pas convaincant dans le cas présent.
J'ai trouvé cette solution qui fonctionne (au moins chez moi sous ACCESS 2000)
- Après adaptation saisir dans l'évènement après mise à jour :
With CodeContextObject
DoCmd.GoToControl "[<Champ>]"
DoCmd.FindRecord <Champ>, , True, , True
If <champ> <> <Champ>, Then
MsgBox "Ce code est inconnu : " & Me!<Champ>
Me!<Champ> = ""
End If
End With
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
stLinkCriteria ne semble pas convaincant dans le cas présent.
J'ai trouvé cette solution qui fonctionne (au moins chez moi sous ACCESS 2000)
- Après adaptation saisir dans l'évènement après mise à jour :
With CodeContextObject
DoCmd.GoToControl "[<Champ>]"
DoCmd.FindRecord <Champ>, , True, , True
If <champ> <> <Champ>, Then
MsgBox "Ce code est inconnu : " & Me!<Champ>
Me!<Champ> = ""
End If
End With
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.