IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Insertion d'une nouvelle ligne dans la table mais pas n'importe où


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut Insertion d'une nouvelle ligne dans la table mais pas n'importe où
    bonjour, voila j'aimerais insérer des nouvelles données dans une table, dont la clef primaire est un numéroAuto.Mais je voudrais les placer à un endroit bien spécifique.

    exemple:
    22
    23
    24
    ...
    25

    26
    27

    Je voudrais insérer ma ligne entre la 24 et la 25 et je voudrais que ma nouvelle ligne est comme clef primaire 25 et que toutes les autres se décalent.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Si c'est vraiment utile, l'idée pourrait être de créer un nouvel enregistrement ( 28) de copier le 27 en 28, le 26 en 27, le 25 en 26 ; et en 25 d'enregistrer le nouveau.

    Seulement ça fait vraiment bizarre de changer la valeur de la clé comme ça pour toute une série d'enregistrements...

    pgz

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    de toute façon tu ne peux pas changer les numéro auto...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut
    oui c'est exactement ce que je veut faire. En faite les enregistrement sont classé par numéro et c'est pour cela que parfois je devrais insérer des enregistrement au milieu.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    de toute facon, c'est pas possible.
    de plus, c'est pas très judicieux de toucher au clé.

    Si ce n° t'interresse (pour faire des tris j'imagine)
    tu te recrée une autre colonne dans ta table dans laquel tu mes des numériques.
    et le jour où tu veux insérer à un tel endroit, tu décales cette colonne.

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Je ne comprends pas non plus très bien le but, mais
    de toute façon tu ne peux pas changer les numéro auto...
    ne répond pas à la question, puisque on peut déplacer le reste de l'enregistrement, décaler les contenus des autres champs...

    pgz

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par pgz
    [...]puisque on peut déplacer le reste de l'enregistrement, décaler les contenus des autres champs...

    pgz
    ben je n'oserais pas faire ça...

    comme LostIN le suggère, il faut créer un autre champ numérique pour l'ordonnancement

  8. #8
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    ben je n'oserais pas faire ça...

    comme LostIN le suggère, il faut créer un autre champ numérique pour l'ordonnancement
    Sans connaître le pb d'Adrix, je suis bien d'accord!

    pgz

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut
    ok je vais créer un nouveau champ, mais comment faire ensuite pour insérer un enregistrement au milieu et incrémenter les autres?

  10. #10
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    C'est beaucoup plus facile. Tu utilises une instruction SQL, un UPDATE. Par exemle si tu veux "insérer" en 24.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE MAtable SET NUMERO = NuMERO +1 WHERE NUMERO >=24
    Puis tu ajoutes ton nouvel enregistrement avec NUMERO = 24

    pgz

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut
    Merci bien mais comment faire pour ajouter puis seulement si elle existe deja ca incrémente?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    Citation Envoyé par adrix26
    Merci bien mais comment faire pour ajouter puis seulement si elle existe deja ca incrémente?
    j'ai rien compris

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut
    En faite comment récuperer le numéro d'enregistrement que l'on souhaite mettre?
    Si par exemple je suis a l'enregistrement 24 dans mon formulaire et que je clic sur le "bouton insérer", là j'aimerais qu'il me créer mon enregistrement et qu'il incrémente tout les autres.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    on parle bien de ta nouvelle colonne qui comprend un nombre.

    si tu veux ajouter au suivant, tu recherches le dernier et tu fais dernier + 1
    si tu veux incorporer l'enregistrement créé à la position x.
    tu fais un update comme pgz t'a dit, et tu insère le nouvel enregistrement avecle N° = X

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    si tu veux incorporer l'enregistrement créé à la position x.
    tu fais un update comme pgz t'a dit, et tu insère le nouvel enregistrement avecle N° = X
    OUi je veut faire ca mais on fait comment?

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    Citation Envoyé par pgz
    C'est beaucoup plus facile. Tu utilises une instruction SQL, un UPDATE. Par exemle si tu veux "insérer" en 24.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE MAtable SET NUMERO = NuMERO +1 WHERE NUMERO >=24
    Puis tu ajoutes ton nouvel enregistrement avec NUMERO = 24

    pgz
    euh, on ne peut pas etre plus clair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim req as string
    dim LeNumDeRef as long
    LeNumDeRef = 24
    req = "UPDATE matable Set Num = "& LeNumDeRef &" + 1 where Num >= "& LeNumDeRef &""
    currentdb().execute req
    req = "INSERT into matable(...,Num,...) VALUES (..., "& LeNumDeRef &",...)"
    currentdb().execute req

  17. #17
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    je ne comprends pas l'intérêt de la démarche ...

    soit le compteur est un numéro technique avec des trous ... mais quelle importance ?

    soit le compteur est porteur d'information, doit désigner un rang un classement auquel cas ça ne doit pas être un numéroauto.

    il y a quand meme ça dans la FAQ : http://access.developpez.com/faq/?pa...elNumAutoHoles

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 55
    Points
    55
    Par défaut
    En faite ma table renferme des questions, elle sont organisées en fonction des numéros.

    Ces numéro permettent de les ranger par théme et il faudrait que je puisse insérer par exemple une question à un certain endroit pour que l'ordre des questions reste logique.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    donc un update sur le champ te servant de tri (hors clé de N° auto) et un insert à la suite.

Discussions similaires

  1. Insertion d'une nouvelle ligne dans la table
    Par boby15000 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/05/2008, 17h49
  2. Réponses: 3
    Dernier message: 05/05/2008, 12h00
  3. Réponses: 2
    Dernier message: 06/02/2007, 09h17
  4. Réponses: 18
    Dernier message: 06/11/2006, 21h32
  5. Réponses: 2
    Dernier message: 07/12/2005, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo