|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonjour,
Dans une table Access qui comporte une clef primaire qui me permet de donner un numéro d’inventaire à mes films, il arrive que certains numéros « sautent » : Mon numéro d’inventaire passe par exemple de 1 à 3. Je suppose qu’il s’agit d’une erreur liée à des suppressions d’enregistrements, mais je n’arrive, ni en compactant la base, ni par programmation à supprimer ou modifier ces enregistrements fantômes : Code :
Cela me gène car mon numéro d’inventaire, qui devait me servir à numéroter mes films n’est pas fiable. Quelqu’un sait-il comment faire pour atteindre et modifier ces enregistrements inutiles ? Merci à tous ceux qui me liront. |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Salut,
une proposition d'approche est disponible dans la pour ce sujethttp://access.developpez.com/faq/?pa...elNumAutoHoles
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Un grand merci pour votre réponse si rapide.
Je vais essayer de mettre en place la solution que vous me proposez. Aussi vite que possible, je vous donne des nouvelles. Encore merci. |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonsoir,
Modifié pour pouvoir fonctionner avec les noms de ma table et du champ que je cherche à compléter, le code dont j’ai pu profiter grâce à vous devient : Code :
Set rs = CurrentDb.OpenRecordset(sSQL, dbOpenSnapshot) Et indique : Erreur d’exécution ‘3131’ : Erreur de syntaxe dans la clause FROM Je cherche la solution, si quelqu’un pouvait m’aider, je l’en remercie, si je trouve une solution, je la poste sur le forum en espérant qu'elle pourra être utile à un autre. Merci. Bien cordialement. |
||
|
|
00
|
|
|
#5 | ||
![]() ![]() |
En fait ici tu dis a Access de prendre les valeurs de variables, au lieu de prendre les noms de champs et tables,
essaie avec Code :
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
||
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonsoir,
Il me semble avoir compris ce que tu disais, mais je n’en suis pas certain. J’ai tenté le code : Code :
Erreur de compilation : Membre de méthode ou de données introuvable Il y a certainement au moins un truc que je n’ai pas compris. Merci de ce que tu as déjà fait pour m’aider. |
||
|
|
00
|
|
|
#7 | ||||
![]() ![]() |
Attention a ne pas t'egarer entre les variables
ici tu utilises mal requete et sQSL de plus, il y a un s de trop dans Docmd.RunSQL Enfin, ne s'agissant pas d'une requete Action, mais d'une requete selection, RunSQL n'est pas la bonne fonction. essaie avec Code :
Code :
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
||||
|
00
|
|
|
#8 | ||||||
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonjour,
Le code que tu as rédigé et que j’ai repris ainsi : Code :
Grand merci pour cette aide, mais je ne parviens toujours pas à modifier l’enregistrement en question : Code :
Une action ExécuterSQL nécessite un argument consistant en une instruction SQL.) Quelqu’un a-t-il une idée pour pouvoir modifier l’enregistrement « fantôme » ? Merci et bonne journée à tous. |
||||||
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonjour et bonne semaine à tous.
Il y a une autre solution pour trouver les numéros automatiques manquants. Elle est certainement moins pure que celle proposée plus haut, mais elle fonctionne aussi : Code :
Ce n’est pas là que se situe le cœur de mon problème : Ce que j’aimerai savoir c’est si il est possible de se servir des numéros récupérés pour créer des fiches qui s’intercaleraient aux numéros trouvés (J’ai tenté sans succès de passer par UPDATE). En clair, si mon premier enregistrement trouvé comme manquant est le numéro 2 comment établir ou rétablir une fiche numéro 2 sachant que ce numéro est un numéro automatique, clef primaire de la table Films. Merci à jpcheck pour l’aide qu’il m’a apportée et à tous ceux qui me liront. Cordialement. |
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Pierre ANTOINEInscription : février 2008 Messages : 650 ![]() |
Bonjour
Selon toute vraisemblance, s'il y a eu des "trous" c'est que le champ "numéro" est au format "Numéro auto" dans la table. Dans ce cas, il n'y a pas de possibilité de créer un enregistrement avec le numéro disponible. Il faut d'abord supprimer le format "numéro auto", et ensuite, au moment de créer un enregistrement, récupérer le premier "emplacement" vide (le "2" entre le "1" et le "3"), qui peut se situer après le dernier enregistrement. Pierre |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonjour,
Tout à fait, le champ "numéro" est au format "Numéro auto" dans la table. Est-il possible, en VBA, de supprimer l'attribution clé primaire au champ "numéro", transformer ce champ en champ numérique simple pour pouvoir ensuite modifier les fiches. Puis, ensuite de redonner au champ sa valeur de clé primaire et de le remettre au format "Numéro auto" ? Merci à tous ceux qui se pencheront sur mon problème. Bon week-end à tous. |
|
|
00
|
|
|
#12 | |||
![]() ![]() |
Citation:
attention, une requete SELECT * FROM n'est pas une requete action, elle se "contente" de retourner une serie d'enregistrements. Si tu veux utiliser RunSQL, il faut une requete action, type INSERT, UPDATE, DELETE, SELECT INTO...
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|||
|
10
|
|
|
#13 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonsoir,
Toutes mes excuses à jpcheck, je n'avais pas vu qu'il avait, encore, répondu à ma demande. Je le remercie pour sa patience, sa disponibilité et sa rapidité. Je comprends bien que l'utilisation de "select" est une erreur, ( c'est même, à mon avis, une connerie, je le remercie de ne pas me l'avoir fait remarquer), mais je n'arrive pas non plus à utiliser INSERT, UPDATE, DELETE, SELECT INTO... sur les enregistrements qui correspondent à des numéros d'index supprimés. pier.antoine a sans doute raison lorsqu'il dit: "Dans ce cas, il n'y a pas de possibilité de créer un enregistrement avec le numéro disponible." S'il n'a pas de solution à mon problème, Il faut clore cette discussion même si elle m'a appris bien des choses. Je ne veux pas le faire avant de remercier tous ceux qui m'ont aidé. |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Pierre ANTOINEInscription : février 2008 Messages : 650 ![]() |
Bonjour
Si vraiment c'est important pour vous que l'identifiant soit continu (sans trou de numérotation), alors, il faut sérieusement envisager de modifier votre table - en ajoutant dans un premier temps un nouveau champ "IDnormal" (numérique) - en recopiant le contenu du champ "ID auto" dans ce champ. - de modifier toutes les références à ID auto pour qu'elles se réfèrent à "ID Normal", et non plus à "ID auto" C'est ce que je ferais. Bonne journée Pierre |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 14 ![]() |
Bonjour,
C'est ce que je vais faire. Un grand merci à tous ceux qui m'ont aidé. Bonne journée à tous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com