Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Lancer requête création de table depuis Excel

miliev83

XLDnaute Occasionnel
bonjour à tous,
J’aimerai savoir comment faire pour depuis Excel 2010, lancer une requête création de table que j’ai créée sur Acess 2010 mais sans avoir à ouvrir Access ?
Merci d’avance!
 

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour,

Voici une macro qui créera une Table nommée "Personnes" dans une base de données "MaBase.accdb" située dans le même dossier que le fichier excel qui la contient (la macro).

Si une table du même nom existe déjà, elle est supprimée avant d'être re-créée

VB:
Private Sub CréerTablePersonnes()
' Modèle de chaîne de connexion pour accdb
    Const CNX_BASE As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=@;Persist Security Info=False;"
    Dim DataBaseFile As String
    Dim cnx As Object

    ' Chemin complet vers la base de données accdb
    DataBaseFile = ThisWorkbook.Path & Application.PathSeparator & "MaBase.accdb"

    ' Création et ouverture de la connexion
    Set cnx = CreateObject("Adodb.Connection")
    cnx.connectionString = Replace(CNX_BASE, "@", DataBaseFile)
    cnx.Open

    ' Supprimer la table au cas ou elle existerait déjà
    On Error Resume Next
    cnx.Execute "DROP TABLE Personnes"
    On Error GoTo 0

    ' Create the Employees table.
    cnx.Execute _
            "CREATE TABLE Personnes(" & _
                                      "Id INTEGER      NOT NULL," & _
                                      "Nom   VARCHAR(40)  NOT NULL," & _
                                      "Prénom  VARCHAR(40)  NOT NULL)"

    ' Fermeture et destruction de l'objet connexion
    cnx.Close

End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Eh bien cette macro lance la requête "RQ_Personnes" qui créee la table "Personnes" dans la base "MaBase.accdb"
VB:
Private Sub Command1_Click()
' Modèle de chaîne de connexion pour accdb
    Const CNX_BASE As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=@;Persist Security Info=False;"
    Dim DataBaseFile As String
    Dim cnx As Object, cmd As Object, res As Object


    ' Chemin complet vers la base de données accdb
    DataBaseFile = ThisWorkbook.Path & Application.PathSeparator & "MaBase.accdb"

    ' Création et ouverture de la connexion
    Set cnx = CreateObject("Adodb.Connection")
    cnx.ConnectionString = Replace(CNX_BASE, "@", DataBaseFile)
    cnx.Open
    
    ' Création d'une commande
    Set cmd = CreateObject("Adodb.command")
    cmd.CommandType = 4    '1 = adCmdText 4 = adCmdStoredProc
    cmd.CommandText = "RQ_CreerPersonnes"
    cmd.ActiveConnection = cnx

    Set res = cmd.Execute()
    ' Fermeture et destruction des objets
    Set cmd = Nothing
    cnx.Close
    Set cnx = Nothing

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…