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

Sécurité Discussion :

Déprotéger le code VBA avec un code VBA


Sujet :

Sécurité

  1. #1
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut Déprotéger le code VBA avec un code VBA
    Bonjour,

    Dans le cadre d'une mise à jour d'une base de données Access via une autre base de données Access (mise à jour de champs de tables, formulaires etc...), il me faut ouvrir la base de données cible et supprimer des objets.
    Le problème est la protection du code VBA qui m'en empêche.
    Je pourrais très bien supprimer ce code à la main pour apporter les modifications mais sur du long terme, je souhaiterai le faire directement en VBA.

    Question :
    Est-il possible de désactiver la protection du code VBA en VBA d'une base de données Access ? Si oui, comment ?

    Merci d'avance,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bon après récupération du code de l'un de mes collègues, prévu pour Excel j'obtiens ce genre de résultat:
    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
    33
    34
    35
    36
     
    Sub Essai()
        Dim acsAppNew As Access.Application
        Dim acsProject As Object
        Dim strMDB As String
        Dim oFD As FileDialog
     
        DoCmd.SetWarnings False
     
        Set oFD = Application.FileDialog(msoFileDialogFilePicker)
        oFD.AllowMultiSelect = False
        If oFD.Show() Then
            strMDB = oFD.SelectedItems(1)
        Else
            Exit Sub
        End If
     
     
        Set acsAppNew = New Access.Application
        With acsAppNew
            .OpenCurrentDatabase strMDB
     
            Set acsProject = .Application.VBE.ActiveVBProject
            If acsProject.Protection <> 1 Then
            Else
    ' Plante ici
                Set Application.VBE.ActiveVBProject = acsProject
                SendKeys "MotDePasse" & "~~"
                Application.VBE.CommandBars(1).FindControl(id:=2578, recursive:=True).Execute
            End If
        End With
     
        Set acsAppNew = Nothing
     
        DoCmd.SetWarnings True
    End Sub
    Le problème est que le code plante complète sur la ligne indiquée. Si quelqu'un a une solution pour me sortir de ce problème, je suis preneur

    Merci d'avance !
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    vba password devrait solutionner ton problème.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,
    Merci pour la réponse mais peux-tu la détailler stp ?
    Je ne vois pas de fonction password...
    Merci d'avance,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

Discussions similaires

  1. [VBA] Requête BO via VBA avec paramètre
    Par sasafca dans le forum SDK
    Réponses: 3
    Dernier message: 22/05/2015, 11h45
  2. Modifier le mdw de sécurité avec du code vba?
    Par Hydex dans le forum Sécurité
    Réponses: 6
    Dernier message: 07/07/2007, 18h06
  3. Réponses: 1
    Dernier message: 19/06/2007, 11h56
  4. Problème avec mon code et avec gcc
    Par JavaAcro dans le forum Linux
    Réponses: 3
    Dernier message: 13/06/2006, 22h47

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