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

VBA Access Discussion :

copie de la base dorsale,suppr de données, compactage, remise à 0 des clefs primaires


Sujet :

VBA Access

  1. #1
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut copie de la base dorsale,suppr de données, compactage, remise à 0 des clefs primaires
    hello

    je n'arrive pas à ouvrir une base de données avec cette commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DB = DBEngine.OpenDatabase(sNomBaseTmp, , , ";pwd=mdp")
    il me dit que le mot de passe n'est pas valide et pourtant j'ouvre ma base en manuel avec ce mot de passe

    bien sur la base que j'essaie d'ouvrir n'est pas déjà ouverte....

    merci de votre aide

    edit

    en fait je fais un archivage de ma base dorsale qui me permet de stocker mes données dans une archive
    je repars pour une nouvelle année en ayant supprimés des données (mais pas toutes) et en ayant compacté la base

    le pb c'est qu'en compactant ma base les clées primaires ne recommance pas à 1 puisque je n'ai pas supprimé toutes les données.

    L'idée que j'essai de réaliser:

    1) faire une copie de ma base apres l'archivage
    2) supprimer tous les enregistrements de toutes les tables
    3) compacter
    4) importer tous les enregistrements pour les remettre à leur place
    5) renommé la copie pour remplacer la source.

    voila ce que j'ai fait pour le moment

    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
    25
    26
    27
    28
    29
    30
    31
    32
    Dim DB As Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("Paramètres", dbOpenDynaset)
     
    Dim sNomBaseTmp As String
    Dim sNomBase As String
     
    If IsNull(rs!repinstreseau) Then
        rs!repinstalreseau = "C:\Program Files\Gestion SEGPA Demo\gestion segpa demo données"
    Else
    sNomBase = rs!repinstreseau
    sNomBaseTmp = "C:\Program Files\Gestion SEGPA Demo\basetemp.mdb"
    End If
     
    Set rs = Nothing
     
    FileCopy sNomBase, sNomBaseTmp
    'Set DB = DBEngine.OpenDatabase(sNomBaseTmp, , , ";pwd=zecil")
    Set DB = DBEngine.OpenDatabase(sNomBaseTmp)
     
    For Each tdf In DB.TableDefs
    DoCmd.SetWarnings False
     
    For Each fld In tdf.Fields
     
         DoCmd.RunSQL ("delete * from " & "[" & tdf.Name & "]")
     
     
    Next
    Next
    voilou
    j'ai donc pour commencer un pb avec le mot de passe pour ouvrir la base que j'ai copié

    merci de votre aide

    edit
    en fait je ne suis pas obligé de tout supprimer peut etre qu'une table ou 2 sufirait il faut que je fasse mes comptes

    est ce que c'est génant d'avoir des clées primaires de valeur importante ex: 1231245 alors que je n'ai que 70 enregistrement dans ma table. (les premieres étant supprimée au fur et à mesure???

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Essaie
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DB = DBEngine.OpenDatabase(sNomBaseTmp, False, False, ";pwd=mdp")
    J'ai l'impression que le mot de passe n'est pas pris en compte si on ne met pas les deux arguments False.

    Un numéro Auto est un entier long.
    Valeur : -2 147 483 648 et 2 147 483 647 si il est signé, 0 à 4294967295 si il n'est pas signé.
    Tu as de la marge.

    D'autre part c'est dangereux et pas simple de renuméroter une clé si il y a des dépendances dans d'autres tables.
    Tu risques de perdre les liens entre les enregistrements des différentes tables.

    Tu risque également de ne pas pouvoir archiver tes données une deuxième fois car tu auras des donblons sur les clés.

    A+

  3. #3
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    oui effectivement il se peut qu'il y ait des liens

    pas de problème pour l'archivage car il me créer un ficher avec un nom différents chaque fois.

    Si ça ne pose pas de probleme d'avoir au bout d'un moment des clées à rallonge alors je crois que je ne vais pas trop m'embeter.....

    merci de tes conseils

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

Discussions similaires

  1. faire une copie d'une base de données
    Par griese dans le forum Oracle
    Réponses: 4
    Dernier message: 17/11/2006, 16h22
  2. Copie d'une base de données
    Par da_latifa dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/03/2006, 12h27
  3. Copie d'une base de données (Sécuritée)
    Par Mawashigeri dans le forum Outils
    Réponses: 3
    Dernier message: 27/02/2006, 20h03
  4. Réponses: 7
    Dernier message: 28/10/2005, 10h14
  5. Réponses: 5
    Dernier message: 08/07/2005, 13h10

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