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 :

VBScript : création base Access pour import fichier XML


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut VBScript : création base Access pour import fichier XML
    Bonjour,

    Afin de pouvoir importer un fichier XML généré, je souhaite créer une base de données Access à travers mon code VBScript. J'arrive bien à ouvrir une base de données existante grâce à :
    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
     
    Function testImportationXML()
        Dim oAccess
        Dim oDb
        Set oAccess = CreateObject("Access.application")
        oAccess.Visible = False
        DupliquerFichier
        oAccess.OpenCurrentDatabase ("cheminDeMaBase.mdb")
        Set oDb = oAccess.CurrentDb()
        LancerImportationXML oAccess, "chemin/fichierAImporter.xml"
        oAccess.CloseCurrentDatabase
        oAccess.Quit
        Set oAccess = Nothing
        Set oDb = Nothing
    End Function
    mais je ne parviens pas à trouver comment en créer une nouvelle, dont je pourrais définir l'emplacement.

  2. #2
    Membre Expert
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Par défaut
    Petit copier/coller de l'aide Access :

    CreateDatabase Method Example

    This example uses CreateDatabase to create a new, encrypted Database object.

    Sub CreateDatabaseX()

    Dim wrkDefault As Workspace
    Dim dbsNew As DATABASE
    Dim prpLoop As Property

    ' Get default Workspace.
    Set wrkDefault = DBEngine.Workspaces(0)

    ' Make sure there isn't already a file with the name of
    ' the new database.
    If Dir("NewDB.mdb") <> "" Then Kill "NewDB.mdb"

    ' Create a new encrypted database with the specified
    ' collating order.
    Set dbsNew = wrkDefault.CreateDatabase("NewDB.mdb", _
    dbLangGeneral, dbEncrypt)

    With dbsNew
    Debug.Print "Properties of " & .Name
    ' Enumerate the Properties collection of the new
    ' Database object.
    For Each prpLoop In .Properties
    If prpLoop <> "" Then Debug.Print " " & _
    prpLoop.Name & " = " & prpLoop
    Next prpLoop
    End With

    dbsNew.Close

    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    Merci pour ta réponse.

    J'avais déjà tenté un truc du genre, mais le truc c'est que je fais du VBScript en dehors d'access (pas le choix pour les besoins que je traite). C'est pour cela que je fais appel à une ouverture de Microsoft Access grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Set oAccess = CreateObject("Access.application")
        oAccess.Visible = False
    Ainsi, j'ai mon programme Access est lancé en invisible. A l'exécution de ton code, la ligne suivante foire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' Get default Workspace.
    Set wrkDefault = DBEngine.Workspaces(0)
    Il ne connait pas l'objet DBEngine, et ne parvient donc pas à continuer

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Par défaut
    Je n'étais vraiment pas loin. Il suffisait d'utiliser tout bêtement (et oui...) la fonction newCurrentDatabase()

    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
     
    Public Function LancerImportationXML(base, fichierXML)
        base.ImportXML _
            DataSource:=fichierXML
    End Function
     
    Sub testImportation3()
        Dim oAccess
        Dim oDb
        Set oAccess = CreateObject("Access.application")
        oAccess.Visible = False
        oAccess.newCurrentDatabase ("chemin_de_la_base_à_créer/nom.mdb")
        Set oDb = oAccess.CurrentDB()
        LancerImportationXML oAccess, "chemin_du_fichier_à_importer/fichierAImporter.xml"
        oAccess.CloseCurrentDatabase
        oAccess.Quit
        Set oAccess = Nothing
        Set oDb = Nothing
    End Sub

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

Discussions similaires

  1. Importer fichier XML dans base de données Access
    Par Yana20 dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 18/05/2015, 14h36
  2. transforme une base de données Access en un fichier xml
    Par canada_bea dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 14/06/2009, 15h47
  3. importer fichiers xml en pieces jointes vers table access
    Par nico1321 dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/04/2008, 14h51
  4. Réponses: 3
    Dernier message: 20/04/2007, 09h46
  5. VBScript : création base Access pour import fichier XML
    Par abertaud dans le forum VBScript
    Réponses: 1
    Dernier message: 02/04/2007, 14h34

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