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 :

Compactage BDD en VB [AC-2003]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Compactage BDD en VB
    Bonjour,

    Je cherche à créer une procédure autorisant un compactage d'une base de données Access 2003 tout les 30 jours.

    L'idée est que l'utilisateur lance un logiciel, lequel affiche un menu, dont le contenu est spécifié dans un fichier ini. Si l'utilisateur clique sur le bouton "compactage", un formulaire est chargé. Enfin l'utilisateur clique sur le bouton "valider", lequel déclenche la fonction suivante:

    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
     
    Private Sub BtnValider_Click()
     
    If MsgBox("Etes-vous certain de vouloir compacter la base données SuiviAtelier ?" & Chr(10) & "Personne ne doit utiliser le module SuiviAtelier durant cette opération", vbYesNo + vbExclamation, "Demande de confirmation") = vbYes Then
        date_prec = Format(Now, "dd/mm/yyyy")
        Open "L:\Preactor\Application_JDE\TraceCompactage.txt" For Append As #1
        Print #1, date_prec
        Close #1
     
        sNomBase = "J:\Copie_de_V100\SuiviAtelier_LB_TE.mdb"
        sNomBaseTmp = "J:\Copie_de_V100\SuiviAtelier_LB_TE_Tmp.mdb"
       DBEngine.CompactDatabase sNomBase, sNomBaseTmp 
        Kill sNomBase 
        Name sNomBaseTmp As sNomBase 
     
        MsgBox "SuiviAtelier a été compactée avec succès !", vbOKOnly + vbInformation, "Succès"
        Text1.Text = date_prec
        Text2.Text = DateAdd("d", 30, date_prec)
        BtnValider.Enabled = False
    End If
    End Sub
    Le problème est qu'à l'exécution il m'est dit qu'un objet est requis.

    Auriez-vous une idée de comment procéder ?

    merci d'avance

  2. #2
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.
    A première vue, il manque des déclarations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sNomBase As String
    Dim sNomBaseTmp As String
    Et si date_prec n'est pas un champ du formulaire mais une variable, il faut aussi la déclarer.
    Cordialement.
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    désolé je n'avais pas précisé mais ces variables ont été déclarées en amont.
    D'après ce que j'ai compris le problème viendrait de cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBEngine.CompactDatabase sNomBase, sNomBaseTmp

  4. #4
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Re-bonjour.

    J'utilise un code quasi identique, avec seulement une phase intermédiaire entre le compactage de la base originale et sa suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        DBEngine.CompactDatabase sNomBase, sNomBaseTmp '1. Compactage dans une nouvelle base
        sEmplacementInitial = sNomBaseTmp    '2. Collage de la base compactée avec le nom de la base originale
        sEmplacementFinal = sNomBase
        FileCopy sEmplacementInitial, sEmplacementFinal
        Kill sNomBaseTmp '3. Suppression de la base temporaire
    Bien entendu, il faut déclarer les deux variables supplémentaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sEmplacementInitial As String
    Dim sEmplacementFinal As String
    Peut-être pourrais-tu essayer?
    Cdlt.
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci RobiPMS, mais tu viens juste de devancer mon edit pour informer que je passais mon sujet en résolu.

    Je discutais en MP avec marsouin_89. Il m'a fourni un code qui fonctionne très bien et que j'ai déjà implémenté.
    En tout cas merci à toi d'avoir pris sur ton temps

    cordialement

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

Discussions similaires

  1. Problème avec le compactage de la BDD
    Par redoran dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/12/2010, 12h10
  2. Compactage de BDD
    Par adelsunwind dans le forum VBA Access
    Réponses: 8
    Dernier message: 13/07/2010, 09h52
  3. bloquer clavier pour compactage bdd
    Par host22 dans le forum Développement
    Réponses: 0
    Dernier message: 08/04/2010, 13h10
  4. [AC-2007] Plantage lors du compactage d'une bdd
    Par Library dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/05/2009, 11h28
  5. Message erreur lors de compactage bdd
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 13/11/2006, 10h53

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