Accéder à une Database SQL via un code VBA

Bonsoir,

si ta fonction ne retourne pas de valeur utises une sub!

    requete = " CREATE DATABASE IF NOT EXISTS `vbamysql` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;" & _
            "USE `vbamysql`;" & _
            "CREATE TABLE IF NOT EXISTS `voitures` (" & _
            "`id` INTEGER NOT NULL auto_increment," & _
            "`marque` VARCHAR(25) NOT NULL," & _
            "`modele` VARCHAR(25) NOT NULL ," & _
            "`cv` INTEGER," & vbCrLf & _
            "PRIMARY KEY (`id`)," & _
            "UNIQUE (`modele`)" & _
            ") ENGINE = InnoDB ;"
OpenConnection.execute  requete

Cela ne fonctionne pas:

2021 05 05

La ligne OpenConnection.Execute requete est surligné, dois je activé une bibliothèque particulière ?

j'ai tester ta requête essai ça!

requete = "CREATE DATABASE IF NOT EXISTS `vbamysql` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE `vbamysql`;" & _
"CREATE TABLE IF NOT EXISTS `voitures` (`id` INTEGER NOT NULL auto_increment,`marque` VARCHAR(25) NOT NULL,`modele`" & _
" VARCHAR(25) NOT NULL ,`cv` INTEGER," & _
"PRIMARY KEY (`id`),UNIQUE (`modele`)) ENGINE = InnoDB ;"

Cela ne change rien et pourtant aucun message d'erreur.

En fait sa marche jus qu'à là

requete = "CREATE DATABASE IF NOT EXISTS `vbamysql` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"

je cherche !

Alors cette requête n'apporte aucune modification à la base de données non plus, serait il possible que la connexion ait échoué ?

Bonjour,

Non il y pas de problème de connexion !

Cette requête fonctionne dans l'interface MySql, et échoue en VBA!

Si on ce contante de créer la base de données ça fonctionne !

Peut être faut il créé la base puis si connecter avant de créer le tables! Je pense que c'est l'instruction USE qui passe pas??????

Alors j'ai réalisé ce que vous m'avez demandé mais là aussi sans succès, je me demande si ce n'est pas un problème avec My SQL Manager Studio car je n'arrive même pas à accéder à ma database depuis le logiciel

image

or j'ai entendue parler de l'assistant d'importation et d'exportation de donnée qui me semblerai bien utile.

Bonjour,

Sql Expess c'est Sql serveur de Microsoft!

il faut utiliser MySql Workbench!

image

Alors je vois mais sais pas quoi en faire, j'ai donné aux instances SQL tous les privilèges et sans résultat

image

Bonjour,

Tu vas sur l'onglet query 1 et tu copies colles ta requête !

Notes que je suis en vacances et que je regarde le forum de temp en temp ce qui explique la latence !

Désolé de te déranger pendant tes vacances, je dois faire ça pour un projet et c'est urgent mais merci pour toutes ton aide.

Quant à query j'ai pue modifier ma base de donnée mais moi j'ai besoin de passer par excel pour cela .

Sub test()

    Const Server = "LocalHost", Port = "3306", User = "root", Password = "xxxx": Dim DataBase
With CreateObject("ADODB.Connection")
        .Open "Driver={MySQL ODBC 8.0 Unicode Driver};Server=" & Server & ";Port=" & Port & ";Database=" & DataBase & ";User=" & User & ";Password=" & Password & ";"
            requete = "CREATE DATABASE IF NOT EXISTS `vbamysql` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"
            .Execute requete
        .Close
        DataBase = "vbamysql"
        .Open "Driver={MySQL ODBC 8.0 Unicode Driver};Server=" & Server & ";Port=" & Port & ";Database=" & DataBase & ";User=" & User & ";Password=" & Password & ";"
             requete = "CREATE TABLE IF NOT EXISTS  `voitures`" & vbCrLf & _
                       "(`id` INTEGER NOT NULL auto_increment,`marque` VARCHAR(25) NOT NULL,`modele` VARCHAR(25) NOT NULL ,`cv` INTEGER," & vbCrLf & _
                       "PRIMARY KEY (`id`),UNIQUE (`modele`)) ENGINE = InnoDB ;"
        .Execute requete
        .Close
End With
End Sub

c'est l'utilisation de USE = vbamysql qui pose problème !

si je me déconnecte puis me recontacte à vbamysql ça fonctionne ????

Merci ça fonctionne, tu es vraiment très fortiche et passe de bonne vacance, merci encore !!!!!

Rechercher des sujets similaires à "acceder database sql via code vba"