Problème numéro d'adhérent sous access 2007

Fermé
cristal - 26 juin 2009 à 10:15
 cristal - 29 juin 2009 à 08:58
Bonjour,
Quelqu'un peut-il m'aider pour rechercher sous access des numéros d'adhérent non attribués.
En fait, j'attribue manuellement dans ma table adhérents des numéros à chaque adhérent, mais lorsqu'un adhérent démissionne, je supprime l'enregistrement, ce qui fait que j'ai des numéros libres, mais comment les trouver
exemple
N° NOM ADRESSE
1 MARTIN PARIS
2 DUPONT LYON
3 DUPOND ROANNE

Lorsque, je supprime l'adhérent 2, j'aimerai une requête qui me permettrait de trouver que le numéro 2 n'est pas attribué de manière à l'attribuer à un nouvel adhérent.
merci de votre aide
A voir également:

8 réponses

yg_be Messages postés 22765 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
26 juin 2009 à 13:45
Tu as approximativement combien d'adhérents ?
Tu veux simplement trouver un numéro libre, ou bien la liste des numéros libres ?
Tu es prête à faire cela avec un petit programme VBA, ou tu préféres une requête SQL qui ser asans doute plus lente ?


La requeste suivante te donnera une partie des numeros libres :
SELECT DISTINCT IIf(num=1,1,num-1) AS libre
FROM tnum
WHERE (((IIf([num]=1,1,[num]-1)) Not In (select num from tnum)));

Tu dois rempacer tnum par le nom de ta table, et num par le nom de ta colonne.
0
bonjour,
eh bien, il y a entre 0 et 150 adhérents ; je souhaite obtenir la liste des numéros libres si possible ;
avec une requête oui. je ne connais pas le programme vba.
Merci beaucoup pour votre aide.
0
yg_be Messages postés 22765 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
26 juin 2009 à 15:59
Que penses-tu de la requete que je t'ai passée ?
0
yg_be Messages postés 22765 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
26 juin 2009 à 16:15
Voici un exemple de programme qui te donne une liste des numeros disponibles

Option Compare Database
Option Explicit

Function dispo() As String
Dim rs As DAO.Recordset
Dim disponibles As String
Dim last As Long
Dim i As Long
Set rs = CurrentDb.OpenRecordset("select num from tnum order by num")
last = 0
Do While Not rs.EOF
For i = last + 1 To rs!num - 1
If dispo <> "" Then dispo = dispo + ","
dispo = dispo + CStr(i)
Next i
last = rs!num

Comme déjà écrit, tu dois rempalcer num et tnum par tes noms.

Pour afficher la liste, tu peux, par exemple, faire une requete : "select dispo();"


rs.MoveNext
Loop 'While Not rs.EOF
End Function
Sub testdispo()
Debug.Print dispo()
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonsoir merci beaucoup pour ton aide
j'ai essayé la requete mais cela ne fonctionne pas ; voila comment cela se présente, j'ai dû faire une erreur quelque part : message d'erreur pas de données compatibles etc.


SELECT accessadherents08.[N°], accessadherents08.[N° commune]
FROM accessadherents08
WHERE (((accessadherents08.[N° commune])=105));
SELECT DISTINCT IIf(N°=1,1,N°-1) AS libre
FROM tnum
WHERE (((IIf([N°]=1,1,[N°]-1)) Not In (select N° from accessadherents08)));
0
Bonjour,
J'ai testé votre requête en utilisant ID au lieu de numéro d'adhérent, et cela fonctionne parfaitement. Je ne comprends pas pourquoi en faisant la reqûete sur le numéro d'adhérent, aucun résultat trouvé, la requête semble ne pas fonctionner. merci de votre aide.
0
yg_be Messages postés 22765 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 mai 2024 1 480
28 juin 2009 à 16:56
Partout dans la requete, tu dois écrire [N°] au lieu de N°.
0
bonjour,
ça fonctionne, mille mercis à vous, vous êtes génial. bonne journée
0