OVH Cloud OVH Cloud

Comment faire

6 réponses
Avatar
marcum
Bonjour
Dans une base de données je connais le nombre d'enregistrements à entrer
soit 100
L'opérateur affecte un numéro compris entre 1 et 100 à chaque enregistrement
les doublons sont interdits
Si il oublie un ou plusieurs numéros lorsqu'il signale sa fin de travail,
je le sais car le code me le signale
Mais comment savoir quels sont les numéros absents, sachant que ce doit etre
possible
Exemple
il entre1 2 3 4 5 7 8 9 10
je voudrais qu'access me dise: il manque le 6
Merci de votre aide

6 réponses

Avatar
Raymond [mvp]
Bonjour.

il faut faire une requête pour rechercher le premier trou de numérotation,
si le champ s'appelle Numéro:
SELECT TOP 1 DCount("*","Table1","numero <" & [numero])+1 AS Compteur
FROM Table1
WHERE (((DCount("*","Table1","numero <" & [numero])+1)<>[numero]))
ORDER BY Table1.Numero;

voir les compteurs page : http://officesystem.access.free.fr/ex_compteur.htm
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"marcum" a écrit dans le message de news:
4288993c$0$23307$
Bonjour
Dans une base de données je connais le nombre d'enregistrements à entrer
soit 100
L'opérateur affecte un numéro compris entre 1 et 100 à chaque
enregistrement
les doublons sont interdits
Si il oublie un ou plusieurs numéros lorsqu'il signale sa fin de travail,
je le sais car le code me le signale
Mais comment savoir quels sont les numéros absents, sachant que ce doit
etre possible
Exemple
il entre1 2 3 4 5 7 8 9 10
je voudrais qu'access me dise: il manque le 6
Merci de votre aide




Avatar
3stone
Salut,

"Raymond [mvp]"
| il faut faire une requête pour rechercher le premier trou de numérotation,
| si le champ s'appelle Numéro:
| SELECT TOP 1 DCount("*","Table1","numero <" & [numero])+1 AS Compteur
| FROM Table1
| WHERE (((DCount("*","Table1","numero <" & [numero])+1)<>[numero]))
| ORDER BY Table1.Numero;



ou :

SELECT TOP 1 [ID]+1 AS Libre
FROM T_Table1
WHERE (((DLookUp("ID","T_Table1","ID=" & [ID]+1)) Is Null))
ORDER BY T_Table1.ID;


;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Raymond [mvp]
Bonjour Pierre.

on doit bien arriver au même résultat sur 100 enregistrements ? non ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"3stone" a écrit dans le message de news:

Salut,

"Raymond [mvp]"
| il faut faire une requête pour rechercher le premier trou de numérotation,
| si le champ s'appelle Numéro:
| SELECT TOP 1 DCount("*","Table1","numero <" & [numero])+1 AS Compteur
| FROM Table1
| WHERE (((DCount("*","Table1","numero <" & [numero])+1)<>[numero]))
| ORDER BY Table1.Numero;



ou :

SELECT TOP 1 [ID]+1 AS Libre
FROM T_Table1
WHERE (((DLookUp("ID","T_Table1","ID=" & [ID]+1)) Is Null))
ORDER BY T_Table1.ID;


;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
3stone
Salut,

"Raymond [mvp]"
|
| on doit bien arriver au même résultat sur 100 enregistrements ? non ?


Tu parle en "temps" ?
Boff, peut-être bien oui...


Mais je viens d'essayer ta version...
dans tous les cas elle me donne... 1 comme réponse

;-))


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Raymond [mvp]
bizarre, je viens de trouver 4 comme il fallait que je trouve.
nous sommes un jour férié travaillé , nous ! le résultat peut être
différent.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"3stone" a écrit dans le message de news:
%
Salut,

"Raymond [mvp]"
|
| on doit bien arriver au même résultat sur 100 enregistrements ? non ?


Tu parle en "temps" ?
Boff, peut-être bien oui...


Mais je viens d'essayer ta version...
dans tous les cas elle me donne... 1 comme réponse

;-))


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
marcum
Merci à tous
En épluchant vos idées j'ai finalement retenu celle de Maxence Hubiche. Je
vous remercie de votre contribution
Ma solution
SELECT tbdResultats.fldBarre, tbdNombre.fldNombre
FROM tbdNombre LEFT JOIN tbdresultats ON tbdNombre.fldNombre =
tbdresultats.fldBarre
WHERE (((tbdresultats.fldBarre) Is Null) AND
((tbdNombre.fldNombre)<[Formulaires]![frmPrevisionBarres]![lstNombreBarre]))
ORDER BY tbdresultats.fldBarre, tbdNombre.fldNombre;
et cela me convient fort bien

"marcum" a écrit dans le message de news:
4288993c$0$23307$
Bonjour
Dans une base de données je connais le nombre d'enregistrements à entrer
soit 100
L'opérateur affecte un numéro compris entre 1 et 100 à chaque
enregistrement
les doublons sont interdits
Si il oublie un ou plusieurs numéros lorsqu'il signale sa fin de travail,
je le sais car le code me le signale
Mais comment savoir quels sont les numéros absents, sachant que ce doit
etre possible
Exemple
il entre1 2 3 4 5 7 8 9 10
je voudrais qu'access me dise: il manque le 6
Merci de votre aide