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

  • Question
Microsoft 365 Offset
Réponses
5
Affichages
533
Réponses
4
Affichages
502
  • Question
Microsoft 365 TEXTSPLIT
Réponses
4
Affichages
449

Statistiques des forums

Discussions
314 611
Messages
2 111 145
Membres
111 051
dernier inscrit
MANUREVALAND