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

Requêtes et SQL. Discussion :

clé primaire non ré-initialisée


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut clé primaire non ré-initialisée
    Bonjour,

    Lors de l'import d'un fichier (par exemple de 5000 lignes), la clé primaire contient le numéro de la ligne correspondante.

    Si je vide la table, et opère à un nouvel import, la clé garde mémoire de son état précédent, et s'incrémente (dans l'exemple, ma première ligne a pour clé 5001)

    Comment faire pour ré-initialiser cette clé ?

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Après avoir vidé la table, il faut compacter la base de données. Les clés automatiques seront réinitialisées dans les tables vides.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut merci
    et je peux compacter via une macro ??

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    En fait, on ne peut pas compacter la base active...Il faut donc se déconnecter de la base active, la compacter, la rouvrir...

    Dans la faq, il y a un ou deux trucs là-dessus (une librairie et un code via jro, si je me souviens)...

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    ça n'arrange pas mes affaires.. c'est une base utilisée par plusieurs personnes, et il ne serait pas pratique de s'en déconnecter entre 2 imports.

    Et je suppose pourtant que je n'ai que la solution d'une clé primaire pour supprimer l'en-tête de mon fichier ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Tu devrais pouvoir t'en sortir avec ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub ViderCopier()
        Dim sql As String
     
        sql = "delete from t_a"
        DoCmd.RunSQL sql
     
        If TableExiste("T_A1") Then DoCmd.DeleteObject acTable, "T_A1"
        sql = "select T_A.* into T_A1 from T_A"
        DoCmd.RunSQL sql
        If TableExiste("T_A") Then DoCmd.DeleteObject acTable, "T_A"
        DoCmd.Rename "T_A", acTable, "T_A1"
     
    End Sub
     
    Function TableExiste(NomTable As String) As Boolean
        Dim MaTable As DAO.TableDef
     
        For Each MaTable In CurrentDb.TableDefs
            If MaTable.Name = NomTable Then
                TableExiste = True
                Exit For
            End If
        Next
    End Function
    Il y a peut-être plus simple en sql pur...

  7. #7
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    merci, c'est sympa de me répondre.. mais comme je n'ai pas ta verve informatique, je suis un peu paumé..

    tu pourrais me re-traduire tout ça dans mon environnement ?

    "delete from t_a"

    "t_a" c'est le nom de ma table ?


    If TableExiste("T_A1") ---> ("T_A1" représente quoi ?)

    sql = "select T_A.* into T_A1 from T_A"

    ------> T_A est identique à t_a ???

    désolé si je semble vraiment très néophyte, mais c'est un peu le cas..

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une petite question, car en fait cette clé primaire ne te sert à rien, car tu veux la réinitialiser à chaque fois , donc y a t-il une raison particulière pour laquelle tu veux la remettre à 0 ?

    Philippe

  9. #9
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    En fait, j'avais pensé que c'était la seule solution pour virer les 5 premières lignes (en-tête) de mon fichier importé (avec "where Numéro < 6")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/03/2014, 17h56
  2. OleDbCommandBuilder Clé primaire non reconnue
    Par acquistapace dans le forum ADO.NET
    Réponses: 1
    Dernier message: 04/12/2012, 18h45
  3. [Débutant] Clef primaire non récupérée
    Par Frantz2501 dans le forum VB.NET
    Réponses: 24
    Dernier message: 09/03/2012, 17h59
  4. Clé primaire non modifiable
    Par tuxmat dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/04/2008, 16h23
  5. Clé primaire non auto
    Par Isa31 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/05/2005, 12h23

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