Bonjour,
Je cherche comment effectuer une numérotation automatique des enregistrements contenus dans une requête (Numérotation à partir de 1) et ce afin de numéroter des questions dans un état tiré de cette requête.
Merci pour votre aide.
Bonjour,
Je cherche comment effectuer une numérotation automatique des enregistrements contenus dans une requête (Numérotation à partir de 1) et ce afin de numéroter des questions dans un état tiré de cette requête.
Merci pour votre aide.

Bonsoir
Tu peux éventuellement voir ceci:http://access.developpez.com/faq/?pa...ementerRequete
Ou là:
http://access.developpez.com/faq/?page=Concept#numreq
Bonjour,
Merci pour les conseils mais, étant novice en la matière, j'ai tenté d'insérer le code SQL dans ma requête et ça m'a tout supprimé. Je te donne un peu plus de précision sur ma demande.
J'ai créé une requête simple nommée "Requête Questionnaire" à partir d'une table appelée "Questionnaires". Dans cette requête j'ai 4 champs respectivement : N°; Questions; Réponses; Choix (avec un critère : =Vrai). Le champ N° à une propriété de numérotation automatique (donc pas forcément dans l'ordre si l'on supprime puis ajoute des enregistrements).
Je voudrais aux vues de ces champs, obtenir dans ma requête un champ supplémentaire dans lequel s'afficherait automatiquement une numérotation dans l'ordre croissant à partir de 1, afin de numéroter mes questions dans un état à imprimer.
Merci d'avance pour une nouvelle leçon.

Bonjour
Effectivement après test on arrive à refaire une numérotation, mais elle ne démarre pas forcément à 1 surtout après le filtre.
Personnellement j'utilise une méthode plus lourde mais qui fonctionne très bien, qui est de créer dynamiquement une table temporaire avec un champ auto, puis d'alimenter cette table avec le résultat de la requête. Comme cela j'ai toujours une Numérotation commençant à 1, puisque la table est recréée à chaque utilisation. Mais c'est un peu plus compliqué.
Mais si c'est juste pour numéroter les lignes de ton état, il n'y a pas besoin de passer par la requête. Une zone de texte dans ton état dont la source est: =1
Puis propriété cumul placée sur oui
Merci pour tes renseignements. Effectivement, maintenant j'arrive à numéroter dans mon état. Encore une question Existe t-il une solution aussi simple pour une numérotation identique dans un formulaire. J'ai essayé d'appliquer la même solution que dans mon état mais il n'existe pas d'option "Cumul" dans les propriétés d'une zone de texte insérée dans un formulaire alors ...
Dans l'attente d'une réponse, merci encore une fois.

Dans un formulaire c'est un peu plus compliqué.
Il faut passer par une numérotation de ligne.
Créer une zone de texte "Compteur"
Puis en Vba mettre la Référence Dao 3.6 Object Library
Dans un module:Après Sur la source de ton champ Compteur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Function fnNumLigne(strTable As String, strChamp As String, MaVar As Variant) As Long Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(strTable, dbOpenDynaset) If Not rs.EOF Then rs.FindFirst ("[" & strChamp & "] = " & MaVar) fnNumLigne = rs.AbsolutePosition + 1 End If rs.Close Set rs = Nothing db.Close Set db = Nothing End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part =fnNumLigne("Questionnaires";"N°";[N°])
Merci pour ton aide mais j'ai encore un problème. Je suis à la lettre des indications et lorsque je passe à l'étape ou je dois ajouter la référence DAO 3.6 Object Library, j'obtiens le message d'erreur suivant : Nom de module, de projet ou de bibliothèque d'objet déjà utilisé. Je ne vois pas d'où peut venir le hic....
Dans l'attente d'une réponse, passe un bon reveillon.

Bonjour
Si tu es en Access 2007, il n'y a pas forcément besoin de la mettre. Donc tu passes à l'étape suivante.
Bonnes fêtes aussi.
Bonsoir membres du forum !
J'aimerais bien comprendre comment fonctionne cette ligne de code ?
Après Sur la source de ton champ Compteur:La fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part =fnNumLigne("Questionnaires";"N°";[N°])J'ai créé une zone de texte dans un formulaire. ensuite inséré cette ligne de code dans la source
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Function fnNumLigne(strTable As String, strChamp As String, MaVar As Variant) As Long Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(strTable, dbOpenDynaset) If Not rs.EOF Then rs.FindFirst ("[" & strChamp & "] = " & MaVar) fnNumLigne = rs.AbsolutePosition + 1 End If rs.Close Set rs = Nothing db.Close Set db = Nothing End Function
de la zone de texte mais en retour voici ce qui s'affiche #Nom*?.
Comment ça fonctionne ?
Cordialement.
Avez-vous copié votre formule dans un module standard ?
Le form affichage mode unique, continu, feuille de données ?
Bonjour !
J'ai copié le code dans module standard, ensuite créé un formulaire continu.
Cordialement !
Ne sachant ce que vous voulez exactement faire avec votre comptage de lignes dans le form, testez ceci dans un module standard
et dans source contrôle : de votre textbox indépendante passez ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35 'Copyright Stephen Lebans 1999 'May not be resold 'Please include my 1 line Copyright notice 'in your code if you use these functions 'I left a bunch of development code in here in case anyone decides to go 'down the same paths I did. 'Created by Stephen Lebans with help from Chris Bergmans ' Updated by Allen Browne Oct/2002 'Production version of GetLineNumberForm 'Works in Form or SubForm mode 'Set controlsource of unbound Text box to '= RowNum([Form]) 'Type exactly as above Public Function RowNum(frm As Form) As Variant On Error GoTo Err_RowNum 'Purpose: Numbering the rows on a form. 'Usage: Text box with ControlSource of: =RowNum([Form]) With frm.RecordsetClone .Bookmark = frm.Bookmark RowNum = .AbsolutePosition + 1 End With Exit_RowNum: Exit Function Err_RowNum: If Err.Number <> 3021& Then 'Ignore "No bookmark" at new row. Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description End If RowNum = Null Resume Exit_RowNum End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RowNum([Formulaire])
Bonjour hyperion13 !
Effectivement le code que vous m'avez fait parvenir marche bien !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35 'Copyright Stephen Lebans 1999 'May not be resold 'Please include my 1 line Copyright notice 'in your code if you use these functions 'I left a bunch of development code in here in case anyone decides to go 'down the same paths I did. 'Created by Stephen Lebans with help from Chris Bergmans ' Updated by Allen Browne Oct/2002 'Production version of GetLineNumberForm 'Works in Form or SubForm mode 'Set controlsource of unbound Text box to '= RowNum([Form]) 'Type exactly as above Public Function RowNum(frm As Form) As Variant On Error GoTo Err_RowNum 'Purpose: Numbering the rows on a form. 'Usage: Text box with ControlSource of: =RowNum([Form]) With frm.RecordsetClone .Bookmark = frm.Bookmark RowNum = .AbsolutePosition + 1 End With Exit_RowNum: Exit Function Err_RowNum: If Err.Number <> 3021& Then 'Ignore "No bookmark" at new row. Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description End If RowNum = Null Resume Exit_RowNum End Functionet dans source contrôle : de votre textbox indépendante passez ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RowNum([Formulaire])
Merci infiniment.
Concernant le code suivant, je souhaiterais l'insérer dans une zone de texte d'un formulaire continu.
Où le place t-on ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part fnNumLigne("Questionnaires";"N°";[N°])
Cordialement.
Partager