Bonjour,
J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée
"tb_doss_agts", c'était à l'origine un fichier excel que qq avait construits
il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes sont
parties donc à ce jour je me retrouve avec des numéros non utilisés (148)
pour être précise et qui ne se suivent pas tant qu'à faire ! donc les trous
sont aléatoires.
J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je
spécifie tout de suite que je ne peux en aucuns cas renuméroter et refaire
cette liste, car elle sert pour le classement de dossiers dans un tourniquet
et ça prendrait trop de temps à refaire tous ces dossiers.
Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros
vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les
numdossiers non utilisés.
J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais
utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout, et
après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de ma
"tb_numdossier_dispo" triée par ordre croissant s'inscrive automatiquement
dans mon champs num dossier ...... quand un agent partira son numéro se
libèrera, prendra la suite dans ma liste des num libres et ainsi de
suite.....
Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous les
agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un seul
champs "numdossier".... je fais un lien entre les deux tables dans une
requête, ensuite et "pis" après ????
Voili, voila
Merciiiiiiiiiiiiiiiiii
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
Fred.M.
Salut Uriane, Bon alors il y a une solution mais je crains que ça pique un peu... En fait plutot que de renseigner tes enregistrements par la "grille" habituelle, tu vas devoir passer... en SQL !! Pour rappel pour faire une requête en SQL, tu demandes une nouvelle requête et tu cliques sur la petite flêche à côté du bouton "mode création" tout à gauche où tu peux choisir "SQL". De là pour insérer un nouvel agent dans ta table "tb_doss_agts" avec le 1er numéro figurant dans ta table "tb_numdossier_dispo", il te faut construire la requête suivante: INSERT INTO tb_doss_agts VALUES ((SELECT MIN(numdossier ) FROM tb_numdossier_dispo), numatricule, nom_prénom)
Enfin une fois l'insertion faite, tu peux purger ce n° de ta table avec DELETE tb_numdossier_dispo WHERE numdossier = (SELECT MIN(numdossier ) FROM tb_numdossier_dispo)
It should work :-)
Fred.M.
Bonjour, J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée "tb_doss_agts", c'était à l'origine un fichier excel que qq avait construits il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes sont parties donc à ce jour je me retrouve avec des numéros non utilisés (148) pour être précise et qui ne se suivent pas tant qu'à faire ! donc les trous sont aléatoires. J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je spécifie tout de suite que je ne peux en aucuns cas renuméroter et refaire cette liste, car elle sert pour le classement de dossiers dans un tourniquet et ça prendrait trop de temps à refaire tous ces dossiers. Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les numdossiers non utilisés. J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout, et après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de ma "tb_numdossier_dispo" triée par ordre croissant s'inscrive automatiquement dans mon champs num dossier ...... quand un agent partira son numéro se libèrera, prendra la suite dans ma liste des num libres et ainsi de suite..... Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous les agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un seul champs "numdossier".... je fais un lien entre les deux tables dans une requête, ensuite et "pis" après ???? Voili, voila Merciiiiiiiiiiiiiiiiii
Salut Uriane,
Bon alors il y a une solution mais je crains que ça pique un peu...
En fait plutot que de renseigner tes enregistrements par la "grille"
habituelle, tu vas devoir passer... en SQL !! Pour rappel pour faire une
requête en SQL, tu demandes une nouvelle requête et tu cliques sur la petite
flêche à côté du bouton "mode création" tout à gauche où tu peux choisir
"SQL".
De là pour insérer un nouvel agent dans ta table "tb_doss_agts" avec le 1er
numéro figurant dans ta table "tb_numdossier_dispo", il te faut construire la
requête suivante:
INSERT INTO tb_doss_agts VALUES
((SELECT MIN(numdossier ) FROM tb_numdossier_dispo), numatricule, nom_prénom)
Enfin une fois l'insertion faite, tu peux purger ce n° de ta table avec
DELETE tb_numdossier_dispo WHERE
numdossier = (SELECT MIN(numdossier ) FROM tb_numdossier_dispo)
It should work :-)
Fred.M.
Bonjour,
J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée
"tb_doss_agts", c'était à l'origine un fichier excel que qq avait construits
il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes sont
parties donc à ce jour je me retrouve avec des numéros non utilisés (148)
pour être précise et qui ne se suivent pas tant qu'à faire ! donc les trous
sont aléatoires.
J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je
spécifie tout de suite que je ne peux en aucuns cas renuméroter et refaire
cette liste, car elle sert pour le classement de dossiers dans un tourniquet
et ça prendrait trop de temps à refaire tous ces dossiers.
Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros
vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les
numdossiers non utilisés.
J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais
utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout, et
après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de ma
"tb_numdossier_dispo" triée par ordre croissant s'inscrive automatiquement
dans mon champs num dossier ...... quand un agent partira son numéro se
libèrera, prendra la suite dans ma liste des num libres et ainsi de
suite.....
Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous les
agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un seul
champs "numdossier".... je fais un lien entre les deux tables dans une
requête, ensuite et "pis" après ????
Voili, voila
Merciiiiiiiiiiiiiiiiii
Salut Uriane, Bon alors il y a une solution mais je crains que ça pique un peu... En fait plutot que de renseigner tes enregistrements par la "grille" habituelle, tu vas devoir passer... en SQL !! Pour rappel pour faire une requête en SQL, tu demandes une nouvelle requête et tu cliques sur la petite flêche à côté du bouton "mode création" tout à gauche où tu peux choisir "SQL". De là pour insérer un nouvel agent dans ta table "tb_doss_agts" avec le 1er numéro figurant dans ta table "tb_numdossier_dispo", il te faut construire la requête suivante: INSERT INTO tb_doss_agts VALUES ((SELECT MIN(numdossier ) FROM tb_numdossier_dispo), numatricule, nom_prénom)
Enfin une fois l'insertion faite, tu peux purger ce n° de ta table avec DELETE tb_numdossier_dispo WHERE numdossier = (SELECT MIN(numdossier ) FROM tb_numdossier_dispo)
It should work :-)
Fred.M.
Bonjour, J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée "tb_doss_agts", c'était à l'origine un fichier excel que qq avait construits il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes sont parties donc à ce jour je me retrouve avec des numéros non utilisés (148) pour être précise et qui ne se suivent pas tant qu'à faire ! donc les trous sont aléatoires. J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je spécifie tout de suite que je ne peux en aucuns cas renuméroter et refaire cette liste, car elle sert pour le classement de dossiers dans un tourniquet et ça prendrait trop de temps à refaire tous ces dossiers. Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les numdossiers non utilisés. J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout, et après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de ma "tb_numdossier_dispo" triée par ordre croissant s'inscrive automatiquement dans mon champs num dossier ...... quand un agent partira son numéro se libèrera, prendra la suite dans ma liste des num libres et ainsi de suite..... Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous les agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un seul champs "numdossier".... je fais un lien entre les deux tables dans une requête, ensuite et "pis" après ???? Voili, voila Merciiiiiiiiiiiiiiiiii
Richard_35
Bonjour Urianne et Fred,
Dans ta table "tb_doss_agts", les "trous" existent-ils en tant qu'enregistrements de la table ? Autrement dit, s'il y a un "trou" pour le n° 22, les enreg. de la table "tb_doss_agts" passent du 21 au 23, ou le n° 22 existe-t-il, physiquement, dans la table ? Si oui, tout pourrait être gérer dynamiquement, sans passer par la table "tb_numdossier_dispo", ce qui serait pratique à l'avenir.
D'autre part, il me paraît dangereux de supprimer, physiquement, les "trous" : si tu as besoin de retrouver les info. concernant une personne partie, tu vas trouver une autre personne à sa place !... mais bon, seuls les utilisateurs peuvent te le préciser... mais, couvre toi, et fais-les signer !... les "trous" ne seront pas récupérables.
Dis-nous, Richard.
"Fred.M." a écrit dans le message de news:
Salut Uriane, Bon alors il y a une solution mais je crains que ça pique un peu... En fait plutot que de renseigner tes enregistrements par la "grille" habituelle, tu vas devoir passer... en SQL !! Pour rappel pour faire une requête en SQL, tu demandes une nouvelle requête et tu cliques sur la petite flêche à côté du bouton "mode création" tout à gauche où tu peux choisir "SQL". De là pour insérer un nouvel agent dans ta table "tb_doss_agts" avec le 1er numéro figurant dans ta table "tb_numdossier_dispo", il te faut construire la requête suivante: INSERT INTO tb_doss_agts VALUES ((SELECT MIN(numdossier ) FROM tb_numdossier_dispo), numatricule, nom_prénom)
Enfin une fois l'insertion faite, tu peux purger ce n° de ta table avec DELETE tb_numdossier_dispo WHERE numdossier = (SELECT MIN(numdossier ) FROM tb_numdossier_dispo)
It should work :-)
Fred.M.
Bonjour, J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée "tb_doss_agts", c'était à l'origine un fichier excel que qq avait construits il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes sont parties donc à ce jour je me retrouve avec des numéros non utilisés (148) pour être précise et qui ne se suivent pas tant qu'à faire ! donc les trous sont aléatoires. J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je spécifie tout de suite que je ne peux en aucuns cas renuméroter et refaire cette liste, car elle sert pour le classement de dossiers dans un tourniquet et ça prendrait trop de temps à refaire tous ces dossiers. Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les numdossiers non utilisés. J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout, et après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de ma "tb_numdossier_dispo" triée par ordre croissant s'inscrive automatiquement dans mon champs num dossier ...... quand un agent partira son numéro se libèrera, prendra la suite dans ma liste des num libres et ainsi de suite..... Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous les agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un seul champs "numdossier".... je fais un lien entre les deux tables dans une requête, ensuite et "pis" après ???? Voili, voila Merciiiiiiiiiiiiiiiiii
Bonjour Urianne et Fred,
Dans ta table "tb_doss_agts", les "trous" existent-ils en tant
qu'enregistrements de la table ?
Autrement dit, s'il y a un "trou" pour le n° 22, les enreg. de la table
"tb_doss_agts" passent du 21 au 23, ou le n° 22 existe-t-il, physiquement,
dans la table ?
Si oui, tout pourrait être gérer dynamiquement, sans passer par la table
"tb_numdossier_dispo", ce qui serait pratique à l'avenir.
D'autre part, il me paraît dangereux de supprimer, physiquement, les
"trous" : si tu as besoin de retrouver les info. concernant une personne
partie, tu vas trouver une autre personne à sa place !... mais bon, seuls
les utilisateurs peuvent te le préciser... mais, couvre toi, et fais-les
signer !... les "trous" ne seront pas récupérables.
Dis-nous,
Richard.
"Fred.M." <FredM@discussions.microsoft.com> a écrit dans le message de news:
B9F309ED-6B4F-4532-A567-C7CBE0E74D75@microsoft.com...
Salut Uriane,
Bon alors il y a une solution mais je crains que ça pique un peu...
En fait plutot que de renseigner tes enregistrements par la "grille"
habituelle, tu vas devoir passer... en SQL !! Pour rappel pour faire une
requête en SQL, tu demandes une nouvelle requête et tu cliques sur la
petite
flêche à côté du bouton "mode création" tout à gauche où tu peux choisir
"SQL".
De là pour insérer un nouvel agent dans ta table "tb_doss_agts" avec le
1er
numéro figurant dans ta table "tb_numdossier_dispo", il te faut construire
la
requête suivante:
INSERT INTO tb_doss_agts VALUES
((SELECT MIN(numdossier ) FROM tb_numdossier_dispo), numatricule,
nom_prénom)
Enfin une fois l'insertion faite, tu peux purger ce n° de ta table avec
DELETE tb_numdossier_dispo WHERE
numdossier = (SELECT MIN(numdossier ) FROM tb_numdossier_dispo)
It should work :-)
Fred.M.
Bonjour,
J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée
"tb_doss_agts", c'était à l'origine un fichier excel que qq avait
construits
il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes
sont
parties donc à ce jour je me retrouve avec des numéros non utilisés (148)
pour être précise et qui ne se suivent pas tant qu'à faire ! donc les
trous
sont aléatoires.
J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je
spécifie tout de suite que je ne peux en aucuns cas renuméroter et
refaire
cette liste, car elle sert pour le classement de dossiers dans un
tourniquet
et ça prendrait trop de temps à refaire tous ces dossiers.
Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros
vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les
numdossiers non utilisés.
J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais
utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout,
et
après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de
ma
"tb_numdossier_dispo" triée par ordre croissant s'inscrive
automatiquement
dans mon champs num dossier ...... quand un agent partira son numéro se
libèrera, prendra la suite dans ma liste des num libres et ainsi de
suite.....
Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous
les
agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un
seul
champs "numdossier".... je fais un lien entre les deux tables dans une
requête, ensuite et "pis" après ????
Voili, voila
Merciiiiiiiiiiiiiiiiii
Dans ta table "tb_doss_agts", les "trous" existent-ils en tant qu'enregistrements de la table ? Autrement dit, s'il y a un "trou" pour le n° 22, les enreg. de la table "tb_doss_agts" passent du 21 au 23, ou le n° 22 existe-t-il, physiquement, dans la table ? Si oui, tout pourrait être gérer dynamiquement, sans passer par la table "tb_numdossier_dispo", ce qui serait pratique à l'avenir.
D'autre part, il me paraît dangereux de supprimer, physiquement, les "trous" : si tu as besoin de retrouver les info. concernant une personne partie, tu vas trouver une autre personne à sa place !... mais bon, seuls les utilisateurs peuvent te le préciser... mais, couvre toi, et fais-les signer !... les "trous" ne seront pas récupérables.
Dis-nous, Richard.
"Fred.M." a écrit dans le message de news:
Salut Uriane, Bon alors il y a une solution mais je crains que ça pique un peu... En fait plutot que de renseigner tes enregistrements par la "grille" habituelle, tu vas devoir passer... en SQL !! Pour rappel pour faire une requête en SQL, tu demandes une nouvelle requête et tu cliques sur la petite flêche à côté du bouton "mode création" tout à gauche où tu peux choisir "SQL". De là pour insérer un nouvel agent dans ta table "tb_doss_agts" avec le 1er numéro figurant dans ta table "tb_numdossier_dispo", il te faut construire la requête suivante: INSERT INTO tb_doss_agts VALUES ((SELECT MIN(numdossier ) FROM tb_numdossier_dispo), numatricule, nom_prénom)
Enfin une fois l'insertion faite, tu peux purger ce n° de ta table avec DELETE tb_numdossier_dispo WHERE numdossier = (SELECT MIN(numdossier ) FROM tb_numdossier_dispo)
It should work :-)
Fred.M.
Bonjour, J'ai une table comme suit, numdossier, numatricule, nom_prénom, nommée "tb_doss_agts", c'était à l'origine un fichier excel que qq avait construits il y'a pas mal de temps, donc du numéro 1 au numéro 650, des personnes sont parties donc à ce jour je me retrouve avec des numéros non utilisés (148) pour être précise et qui ne se suivent pas tant qu'à faire ! donc les trous sont aléatoires. J'ai repris ce fichier excel, que j'ai rapatrié dans ma base access, je spécifie tout de suite que je ne peux en aucuns cas renuméroter et refaire cette liste, car elle sert pour le classement de dossiers dans un tourniquet et ça prendrait trop de temps à refaire tous ces dossiers. Donc j'ai dans un 1er tps fais une requête pour trouver tous les numéros vides,j'ai créé une table "tb_numdossier_dispo" j'ai mis tous les numdossiers non utilisés. J'ai créé un formulaire d'ajout pour chaque nouvel agent et je voudrais utiliser les numéros manquants, donc ouvrir mon formulaire en mode ajout, et après mise à jour de mon champs "nom_prénom" que le 1er numéro libre de ma "tb_numdossier_dispo" triée par ordre croissant s'inscrive automatiquement dans mon champs num dossier ...... quand un agent partira son numéro se libèrera, prendra la suite dans ma liste des num libres et ainsi de suite..... Donc je récapitulette, ma table "tb_doss_agts" ou j'ai la liste de tous les agents répertoriés et classés, ma table "tb_numdossier_dispo" avec un seul champs "numdossier".... je fais un lien entre les deux tables dans une requête, ensuite et "pis" après ???? Voili, voila Merciiiiiiiiiiiiiiiiii
pgz
Bonsoir.
Si tes numéros de dossiers se suivent, je te conseillerais ceci : 1. Dans la table des agents d'ajouter une clé propre = num auto. Tu as alors : IdAgent, NumDossier, Matricule, ... 2. Tu laissses tomber la table des numéros de dossier dispos 3. Dans ton formulaire tu crées une procédure évènementielle après mise à jour du nom, du genre : ************ sub Nomagent_AfterUpdate if IsNull(me.NumDossier) then me.NumDossier = fctNumDossier end sub ************
avec: ************** Public function fctNumDossier() as long dim db as DAO.DataBase, rst as DAO.RecordSet, lng1 as long, lng2 as long
set db = Application.CurrentDb set rst = db.Openrecordset("SELECT * FROM tblAgents ORDER BY NumDosssier;", dbOpenDynaset)
lng1 = 0 lng2 = 0
While (not rst.EOF) and (lng = 0) lng2 = lng2 +1 if rst("NumDossier") > lng2 then lng1 = lng2 rst.movenext wend
rst.close set rst = nothing set db = Nothing
fctNumDossier = lif(lng1=0,lng2+1,lng1) End function ************************** Juste pour l'idée, à mettre au point, bien sûr. En espérant que cela t'aide,
-- pgz
"Ce qui se conçoit mal s''exprime obscurément et les mots pour le dire arrivent péniblement." - dicomoche.net _____________________________ pgz.conseil at orange.fr
Bonsoir.
Si tes numéros de dossiers se suivent, je te conseillerais ceci :
1. Dans la table des agents d'ajouter une clé propre = num auto. Tu as alors
: IdAgent, NumDossier, Matricule, ...
2. Tu laissses tomber la table des numéros de dossier dispos
3. Dans ton formulaire tu crées une procédure évènementielle après mise à
jour du nom, du genre :
************
sub Nomagent_AfterUpdate
if IsNull(me.NumDossier) then me.NumDossier = fctNumDossier
end sub
************
avec:
**************
Public function fctNumDossier() as long
dim db as DAO.DataBase, rst as DAO.RecordSet, lng1 as long, lng2 as long
set db = Application.CurrentDb
set rst = db.Openrecordset("SELECT * FROM tblAgents ORDER BY NumDosssier;",
dbOpenDynaset)
lng1 = 0
lng2 = 0
While (not rst.EOF) and (lng = 0)
lng2 = lng2 +1
if rst("NumDossier") > lng2 then lng1 = lng2
rst.movenext
wend
rst.close
set rst = nothing
set db = Nothing
fctNumDossier = lif(lng1=0,lng2+1,lng1)
End function
**************************
Juste pour l'idée, à mettre au point, bien sûr.
En espérant que cela t'aide,
--
pgz
"Ce qui se conçoit mal s''exprime obscurément et les mots pour le dire
arrivent péniblement." - dicomoche.net
_____________________________
pgz.conseil at orange.fr
Si tes numéros de dossiers se suivent, je te conseillerais ceci : 1. Dans la table des agents d'ajouter une clé propre = num auto. Tu as alors : IdAgent, NumDossier, Matricule, ... 2. Tu laissses tomber la table des numéros de dossier dispos 3. Dans ton formulaire tu crées une procédure évènementielle après mise à jour du nom, du genre : ************ sub Nomagent_AfterUpdate if IsNull(me.NumDossier) then me.NumDossier = fctNumDossier end sub ************
avec: ************** Public function fctNumDossier() as long dim db as DAO.DataBase, rst as DAO.RecordSet, lng1 as long, lng2 as long
set db = Application.CurrentDb set rst = db.Openrecordset("SELECT * FROM tblAgents ORDER BY NumDosssier;", dbOpenDynaset)
lng1 = 0 lng2 = 0
While (not rst.EOF) and (lng = 0) lng2 = lng2 +1 if rst("NumDossier") > lng2 then lng1 = lng2 rst.movenext wend
rst.close set rst = nothing set db = Nothing
fctNumDossier = lif(lng1=0,lng2+1,lng1) End function ************************** Juste pour l'idée, à mettre au point, bien sûr. En espérant que cela t'aide,
-- pgz
"Ce qui se conçoit mal s''exprime obscurément et les mots pour le dire arrivent péniblement." - dicomoche.net _____________________________ pgz.conseil at orange.fr