Pour num=E9roter les lignes de ma requ=EAte tri=E9e (Access) j'ai utilis=E9
la fonction pr=E9conis=E9e par Helv=E9 le 16/05/2001, et Damien Mermoz le
23/01/2004.
Cela fonctionne correctement lorsque la requ=EAte n'est pas tri=E9e
(N=B0Ligne =3D 1, 2 , 3 , 4 etc...) mais d=E8s que j'applique un tri
j'obtiens (N=B0Ligne =3D 1, 3 , 5, 6, 8 etc...) .
Avez-vous la solution pour ce probl=E8me, ou existe-t'il une autre
fonction ?
Merci pour votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jg1
Toutes mes exscuses, j'ai omis de joindre la fonction.
Crée un nouveau module et colle ce qui suit :
Function Incrémente(NomTable As String, NomChamp As String, var As Variant) As Long Dim rs As Recordset
' NomTable est le nom de ta table ' NomChamp est le nom de n'importe quel champ de ta table que tu as inclus ' dans ta requête ' var est le contenu du champ NomChamp
Set rs = CurrentDb.OpenRecordset(NomTable, dbOpenDynaset)
If Not rs.EOF Then ' s'il y à au moins 1 enregistrement rs.FindFirst ("[" & NomChamp & "]= " & var) Incrémente = rs.AbsolutePosition + 1 ' AbsolutePosition démarre à 0 (donc +1) Exit Function End If
rs.Close: Set rs = Nothing
End Function
Crée ta requête avec les champs que tu souhaites voir apparaître puis ajoute le champ suivant : Nom du champ : Num: Incrémente("Nom de ta table";"ChampX";[ChampX]) Ce qui devrait donner, dans ton cas: Num: Incrémente("TArticle";"NumArt";[NumART])
Toutes mes exscuses, j'ai omis de joindre la fonction.
Crée un nouveau module et colle ce qui suit :
Function Incrémente(NomTable As String, NomChamp As String, var As
Variant) As
Long
Dim rs As Recordset
' NomTable est le nom de ta table
' NomChamp est le nom de n'importe quel champ de ta table que tu as
inclus
' dans ta requête
' var est le contenu du champ NomChamp
Set rs = CurrentDb.OpenRecordset(NomTable, dbOpenDynaset)
If Not rs.EOF Then ' s'il y à au moins 1 enregistrement
rs.FindFirst ("[" & NomChamp & "]= " & var)
Incrémente = rs.AbsolutePosition + 1 ' AbsolutePosition démarre
à 0 (donc +1)
Exit Function
End If
rs.Close: Set rs = Nothing
End Function
Crée ta requête avec les champs que tu souhaites voir apparaître
puis ajoute le champ suivant :
Nom du champ : Num: Incrémente("Nom de ta
table";"ChampX";[ChampX])
Ce qui devrait donner, dans ton cas:
Num: Incrémente("TArticle";"NumArt";[NumART])
Toutes mes exscuses, j'ai omis de joindre la fonction.
Crée un nouveau module et colle ce qui suit :
Function Incrémente(NomTable As String, NomChamp As String, var As Variant) As Long Dim rs As Recordset
' NomTable est le nom de ta table ' NomChamp est le nom de n'importe quel champ de ta table que tu as inclus ' dans ta requête ' var est le contenu du champ NomChamp
Set rs = CurrentDb.OpenRecordset(NomTable, dbOpenDynaset)
If Not rs.EOF Then ' s'il y à au moins 1 enregistrement rs.FindFirst ("[" & NomChamp & "]= " & var) Incrémente = rs.AbsolutePosition + 1 ' AbsolutePosition démarre à 0 (donc +1) Exit Function End If
rs.Close: Set rs = Nothing
End Function
Crée ta requête avec les champs que tu souhaites voir apparaître puis ajoute le champ suivant : Nom du champ : Num: Incrémente("Nom de ta table";"ChampX";[ChampX]) Ce qui devrait donner, dans ton cas: Num: Incrémente("TArticle";"NumArt";[NumART])
3stone
Salut,
Pour numéroter les lignes de ma requête triée (Access) j'ai utilisé la fonction préconisée par Helvé le 16/05/2001, et Damien Mermoz le 23/01/2004. Cela fonctionne correctement lorsque la requête n'est pas triée (N°Ligne = 1, 2 , 3 , 4 etc...) mais dès que j'applique un tri j'obtiens (N°Ligne = 1, 3 , 5, 6, 8 etc...) . Avez-vous la solution pour ce problème, ou existe-t'il une autre fonction ?
Tu peux utiliser une des fonctions suivantes : http://www.3stone.be/access/articles.php?lng=fr&pg9
il est entendu que la requête doit posséder un tri et c'est ce champ trié qui intervient pour créer la numérotation.
Pour numéroter les lignes de ma requête triée (Access) j'ai utilisé
la fonction préconisée par Helvé le 16/05/2001, et Damien Mermoz le
23/01/2004.
Cela fonctionne correctement lorsque la requête n'est pas triée
(N°Ligne = 1, 2 , 3 , 4 etc...) mais dès que j'applique un tri
j'obtiens (N°Ligne = 1, 3 , 5, 6, 8 etc...) .
Avez-vous la solution pour ce problème, ou existe-t'il une autre
fonction ?
Tu peux utiliser une des fonctions suivantes :
http://www.3stone.be/access/articles.php?lng=fr&pg9
il est entendu que la requête doit posséder un tri et c'est ce
champ trié qui intervient pour créer la numérotation.
Pour numéroter les lignes de ma requête triée (Access) j'ai utilisé la fonction préconisée par Helvé le 16/05/2001, et Damien Mermoz le 23/01/2004. Cela fonctionne correctement lorsque la requête n'est pas triée (N°Ligne = 1, 2 , 3 , 4 etc...) mais dès que j'applique un tri j'obtiens (N°Ligne = 1, 3 , 5, 6, 8 etc...) . Avez-vous la solution pour ce problème, ou existe-t'il une autre fonction ?
Tu peux utiliser une des fonctions suivantes : http://www.3stone.be/access/articles.php?lng=fr&pg9
il est entendu que la requête doit posséder un tri et c'est ce champ trié qui intervient pour créer la numérotation.
Merci pour la réponse et l'indication du site à consulter qui me semble pas mal.
La fonction que j'utilise correspond à la solution 3 qui fonctionne correctement, mais par exemple losque je mets un critère (Voir Nota) sur un champ de la requête je nai plus de numérotation chrono (1,2,3,4,5,6) mais (1,3,5,6,8).
Nota : Dans "mais dès que j'applique un tri" du premier message il faut lire "mais dès que j'applique un critère "
Salutations
Bonjour,
Merci pour la réponse et l'indication du site à consulter qui me
semble pas mal.
La fonction que j'utilise correspond à la solution 3 qui fonctionne
correctement, mais par exemple losque je mets un critère (Voir Nota)
sur un champ de la requête je nai plus de numérotation chrono
(1,2,3,4,5,6) mais (1,3,5,6,8).
Nota : Dans "mais dès que j'applique un tri" du premier message il
faut lire "mais dès que j'applique un critère "
Merci pour la réponse et l'indication du site à consulter qui me semble pas mal.
La fonction que j'utilise correspond à la solution 3 qui fonctionne correctement, mais par exemple losque je mets un critère (Voir Nota) sur un champ de la requête je nai plus de numérotation chrono (1,2,3,4,5,6) mais (1,3,5,6,8).
Nota : Dans "mais dès que j'applique un tri" du premier message il faut lire "mais dès que j'applique un critère "
Salutations
3stone
Salut,
La fonction que j'utilise correspond à la solution 3 qui fonctionne correctement, mais par exemple losque je mets un critère (Voir Nota) sur un champ de la requête je nai plus de numérotation chrono (1,2,3,4,5,6) mais (1,3,5,6,8).
Nota : Dans "mais dès que j'applique un tri" du premier message il faut lire "mais dès que j'applique un critère "
Evidement...
La méthode doit porter sur les données qui seront effectivements utilisées et affichées !! Au lieu de la baser sur la table... que tu filtre ensuite par un critère, base la méthode sur la requête.
Eventuellement sur une requête qui aura ta requête avec critère comme source.
La fonction que j'utilise correspond à la solution 3 qui fonctionne
correctement, mais par exemple losque je mets un critère (Voir Nota)
sur un champ de la requête je nai plus de numérotation chrono
(1,2,3,4,5,6) mais (1,3,5,6,8).
Nota : Dans "mais dès que j'applique un tri" du premier message il
faut lire "mais dès que j'applique un critère "
Evidement...
La méthode doit porter sur les données qui seront effectivements
utilisées et affichées !!
Au lieu de la baser sur la table... que tu filtre ensuite par un critère,
base la méthode sur la requête.
Eventuellement sur une requête qui aura ta requête avec critère
comme source.
La fonction que j'utilise correspond à la solution 3 qui fonctionne correctement, mais par exemple losque je mets un critère (Voir Nota) sur un champ de la requête je nai plus de numérotation chrono (1,2,3,4,5,6) mais (1,3,5,6,8).
Nota : Dans "mais dès que j'applique un tri" du premier message il faut lire "mais dès que j'applique un critère "
Evidement...
La méthode doit porter sur les données qui seront effectivements utilisées et affichées !! Au lieu de la baser sur la table... que tu filtre ensuite par un critère, base la méthode sur la requête.
Eventuellement sur une requête qui aura ta requête avec critère comme source.