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 :

Le script VBA pour recréer ma base Access existante


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut Le script VBA pour recréer ma base Access existante
    Bonjour.

    Je cherche une solution pour créer le code VBA de création d'une nouvelle base Access, au départ d'une base Access existante.
    Les tables et les relations. Pas nécessairement les données.
    Il s'agit du code VBA qui doit permettre de recréer la même base Access.

    Pour quoi faire ça ?
    Au bureau, les ports USB sont bloqués et les pièces attachées aux emails sont surveillées. Je ne peux pas m'envoyer ma base Access en pièce attachée.

    Mais si je disposais du code VBA de création de ma base Access:
    1. je le mettrais dans un email (dans le message, pas en pièce attachée)
    2. que je m'enverrais au bureau,
    3. je récupèrerais le (texte du) code VBA,
    4. je le collerais dans Access, dans un Sub
    5. que j'exécuterais.
    Résultat: j'aurais ma base Access au bureau.
    Le top serait de passer les données de la même manière, mais la base Access vide m'aiderait déjà beaucoup.

    Le code VBA serait du genre (pour l'exemple):

    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
     
    Sub Main()
     
    Set con = CurrentProject.Connection
    cat.ActiveConnection = con
    Set dbs = CurrentDb()
     
    On Error GoTo ErrorHandler
      Call CreateTables
      Call CreatePrimaryKeys
      Call CreateIndexes
      Call CreateAlterKeys
      Call CreateRelations
      Call CreateRelationsDAO
      Call CreateQueries
     
    ...
    Merci d'avance pour vos idées, suggestions et solutions.

  2. #2
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    Bonjour
    Au bureau, les ports USB sont bloqués et les pièces attachées aux emails sont surveillées. Je ne peux pas m'envoyer ma base Access en pièce attachée.
    Dans ce cas, upload ta base sur OneDrive par exemple, ensuite tu le télécharges à partir de ton navigateur internet.
    C'est une possibilité
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 116
    Points : 52
    Points
    52
    Par défaut
    Bonjour Star,

    Pas faisable non plus, ni Google Drive ou autre source cloud.
    En bloquant les ports USB, ils y ont pensé aussi -

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 119
    Points : 1 645
    Points
    1 645
    Par défaut
    Salut,

    Eventuellement, tu peux exporter l'ensemble des codes sources, requêtes, formulaires, tables de ta BDD vers une plate-forme comme GitHub.
    Recupérer les exports et les re-injecter dans une nouvelle base.

    Note:
    Si possible, génère un script SQL de création de tables, sans oublier les contraintes de clef étrangères, ce sera plus agréable que se retaper la création des relations à la main.

  5. #5
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    Bonjour,
    Perso, j'ai booté mon PC sur une drive externe et réinitialiser le MP admin, puis, pris la main sur le compte pour copier ce que je voulais
    Pratique autorisée en RPDC
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    bonjour,
    script qui converti n'importe quel fichier en texte et la contre parti un texte en fichier!
    tu pourras envoyer ton fichier au format texte dans le corp du mail!
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Option Explicit
    Sub test()
    Dim Base As String
    Base = Base64
    MsgBox Base
    Base64 = Base
    End Sub
    Property Get Base64() As String
     Dim inputFile As Variant
      inputFile = Application.GetOpenFilename("All Files (*.*), *.*", , "Select a file to convert to Base64")
      If inputFile <> False Then Base64 = FileToBase64(inputFile)
    End Property
    Property Let Base64(Value As String)
     Dim outputFile As Variant
     outputFile = Application.GetSaveAsFilename(FileFilter:="All Files (*.*), *.*", Title:="Save as")
      If outputFile <> False Then Base64ToFile Value, outputFile
    End Property
    Function FileToBase64(ByVal filePath As String) As String
        Dim stream As Object
        Set stream = CreateObject("ADODB.Stream")
     
        stream.Type = 1 ' adTypeBinary
        stream.Open
        stream.LoadFromFile filePath
        Dim arrData() As Byte: arrData() = stream.Read
        FileToBase64 = EncodeBase64(arrData)
     
        stream.Close
        Set stream = Nothing
    End Function
     
     
    Sub Base64ToFile(ByVal base64Text As String, ByVal filePath As String)
        Dim stream As Object
        Set stream = CreateObject("ADODB.Stream")
     
        stream.Type = 1
        stream.Open
        stream.Write DecodeBase64(base64Text)
        stream.SaveToFile filePath, 2 ' adSaveCreateOverWrite
     
        stream.Close
        Set stream = Nothing
    End Sub
     
     
    Function EncodeBase64(arrData() As Byte) As String
     
     
        Dim objXML As Object
        Dim objNode As Object
     
     
        Set objXML = CreateObject("MSXML2.DOMDocument")
        Set objNode = objXML.createElement("b64")
     
        objNode.DataType = "bin.base64"
        objNode.nodeTypedValue = arrData
        EncodeBase64 = objNode.Text
     
     
        Set objNode = Nothing
        Set objXML = Nothing
    End Function
     
     
    Function DecodeBase64(ByVal base64Text As String) As Byte()
        Dim objXML As Object
        Dim objNode As Object
     
     
        Set objXML = CreateObject("MSXML2.DOMDocument")
        Set objNode = objXML.createElement("b64")
     
        objNode.DataType = "bin.base64"
        objNode.Text = base64Text
        DecodeBase64 = objNode.nodeTypedValue
     
     
        Set objNode = Nothing
        Set objXML = Nothing
    End Function
    je t'invites au minimum à compacter ta base de données. si tu es intéressé par une copie sans données je t'invites a faire une copy , de faire le ménage puis de compacter ta base avant de la convertir en base 64!

Discussions similaires

  1. [Toutes versions] Générer le code VBA pour recréer la base Access
    Par voxov dans le forum VBA Access
    Réponses: 7
    Dernier message: 15/03/2024, 14h12
  2. [VBA Excel]Interroger une base access depuis Excel
    Par Stephane_123 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/02/2007, 10h43
  3. [VBA]Test cellule vide base access
    Par ALAMARQU dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/03/2006, 16h14
  4. UPDATE en ADO pour une autre base access
    Par EE dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 19/01/2006, 13h43
  5. [outils] logiciel pour visualiser les bases access?
    Par korntex5 dans le forum Runtime
    Réponses: 9
    Dernier message: 05/01/2006, 13h49

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