Problème numéro d'adhérent sous access 2007
cristal
-
cristal -
cristal -
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
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:
- Problème numéro d'adhérent sous access 2007
- Save as pdf office 2007 - Télécharger - Bureautique
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Numero imei - Guide
- Connaitre son numero sfr ✓ - Forum SFR
8 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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.
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.
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.
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.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Que penses-tu de la requete que je t'ai passée ?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
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
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)));
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)));
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.
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.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Partout dans la requete, tu dois écrire [N°] au lieu de N°.