Bonjour à tous,
j'ai beaucoup apprécié ce module car je suis arrivé à l'adapter a mon projet sans problème. Cependant quand je veux attaquer une base de donnée distante en remplaçant localhost par l'adresse ou le nom du serveur ça ne marche pas et voici le message d'érreur :
Erreur d'execution -2147467259 (80004005)
[MYSQL][ODBC 5.1 Driver] host 'Nom_machine.mshome.net' is not allowed to connect to this MYSQL server.
Bonjour à tous,
Ce code me génére une erreur à ce niveau et me dit "erreur de compilation : Type défine par l'utilisateur non défini"
Public Function ConnexMySQL(ByVal nomServeur As String, ByVal DB As String, ByVal User As String, ByVal Pwd As String) As ADODB.Connection
J'avais oublié de télécharger le driver maintenant, j'ai une autre erreur : "Accés refusé pour l'utilisateur : 'host'@'@localhost'(mot de passe : NON)"
Bonjour tout le monde!
Voilà je me lance dans le visual basic (je bosse avec VB6), et je cherche à faire une connexion tout bête à une base de données MySQL. Je possède MySQL Server 4.1 et je sais m'en servir ;)
Je connais un peu le logiciel, ainsi que la POO étant donné que je fais du Flash à un niveau pas trop mal maintenant ^^.
J'ai déjà trouvé sur ce site dans un des messages laissés par je ne sais qui, où il y avait une "bible" de 139 pages.
Cependant en essayant de faire ce qui est expliqué dans cette doc, le compilateur m'affiche une erreur que je ne parviens pas à comprendre. Voici le code complet de ma connexion:
Dim connexionSQL As New SqlClient.SqlConnection
connexionSQL.ConnectionString = "Provider=MySQLProv;Data Source=C:\Program Files\MySQL\MySQL Server 4.1\data"
connexionSQL.Open
et l'erreur se fait sur la ligne suivante:
Dim connexionSQL As New SqlClient.SqlConnection
L'erreur affichée est :
User-defined type not defined
Généralement, une erreur comme celle là est une erreur ADO. Je viens d'essayer sur ma config et tout fonctionne sous VB5 et sous VB6.
Voici quelques points à vérifier
---------------------------------------
Existence de la base
Mot de passe.
Driver ODBC MySQL (à tester hors VB6)
Je ne connais pas Windows 2003 mais tu devrais pouvoir trouver où créer une nouvelle connexion ODBC (dans le panneau de configuration dans les versions NT). Le driver MySQL demande alors le nom de la base, le login et le mot de passe. Il permet de tester la connexion.
Dans VB
-----------
Mets un point d'arrêt sur la ligne "Set Connexion =..." en cliquant dans la marge ou <F9> et lance l'exécution pas à pas. Tu pourras de ce fait déterminer quelle instruction déclenche cette erreur.
Vérifie la valeur des variables à chaque instruction en laissant ta souris dessus ou encore mieux via le controle de debugging(valeur des variables locales).
Voir aussi Source n°28043 :
Active X qui à les même fonctionnalités que ADO et MyODBC sans utiliser ces outils mais en utilisant les fonctions API de MySQL.
Voici un exemple :
' ATTENTION : Ajouter la référence Microsoft Active X DataObjects Librairy
' au projet
Public Sub Main()
Dim Connexion As ADODB.Connection
Dim Rs As ADODB.Recordset
'------------------------------------------------------------------
'Ouverture d'une connexion
Set Connexion = ConnexMySQL("localhost", "test", "root", "admin")
'------------------------------------------------------------------
'Création d'une nouvelle table
ReqSqlTableNew Connexion, "nouvelletable", "id int primary key auto_increment,nom varchar(10)"
'------------------------------------------------------------------
'Insertion de 2 nouveaux enregistrements
Dim NewNom As String
NewNom = "jean"
'Les apostrophes devant limiter une chaine de caractères dans une requête SQL
'Doubler les apostrophes se trouvant dans la chaine
NewNom = "'" + Replace(NewNom, "'", "''") + "'"
'------------------------------------------------------------------
'Selectionner tous les enregistrements
Set Rs = ReqSelect(Connexion, "*", "nouvelletable", , , "nom")
If Not (Rs.BOF True And Rs.EOF True) Then
'Cette requete a un résultat
Rs.MoveFirst
Do Until Rs.EOF = True
Debug.Print CStr(Rs.Fields("id").Value) + " - " + Rs!nom
Rs.MoveNext
Loop
Else
Debug.Print "Aucun enregistrement"
End If
'Fermer le Recordset et détruire l'objet
If Not (Rs Is Nothing) Then
If Rs.State = 1 Then
Rs.Close
End If
Set Rs = Nothing
End If
'------------------------------------------------------------------
'Supprimmer le premier record
ReqDelete Connexion, "nouvelletable", "nom='jean'"
'------------------------------------------------------------------
'Fermer la connexion
If Not (Connexion Is Nothing) Then
If Connexion.State = 1 Then
Connexion.Close
End If
Set Connexion = Nothing
End If
Bonjour,
Juste une petite question sur l'utilisation de cette source (qui a l'air de correspondre a ce que je recherche). Comme je débute, as tu un exemple d'utilisation pour chaque fonction ou sub?
Merci
12 juil. 2010 à 15:32
j'ai beaucoup apprécié ce module car je suis arrivé à l'adapter a mon projet sans problème. Cependant quand je veux attaquer une base de donnée distante en remplaçant localhost par l'adresse ou le nom du serveur ça ne marche pas et voici le message d'érreur :
Erreur d'execution -2147467259 (80004005)
[MYSQL][ODBC 5.1 Driver] host 'Nom_machine.mshome.net' is not allowed to connect to this MYSQL server.
Quelqu'un a t'il une solution?
6 oct. 2007 à 19:30
Ce code me génére une erreur à ce niveau et me dit "erreur de compilation : Type défine par l'utilisateur non défini"
Public Function ConnexMySQL(ByVal nomServeur As String, ByVal DB As String, ByVal User As String, ByVal Pwd As String) As ADODB.Connection
Merci de m'aider
Cordialement
6 juin 2006 à 14:14
6 juin 2006 à 12:30
28 août 2005 à 19:11
Voilà je me lance dans le visual basic (je bosse avec VB6), et je cherche à faire une connexion tout bête à une base de données MySQL. Je possède MySQL Server 4.1 et je sais m'en servir ;)
Je connais un peu le logiciel, ainsi que la POO étant donné que je fais du Flash à un niveau pas trop mal maintenant ^^.
J'ai déjà trouvé sur ce site dans un des messages laissés par je ne sais qui, où il y avait une "bible" de 139 pages.
Cependant en essayant de faire ce qui est expliqué dans cette doc, le compilateur m'affiche une erreur que je ne parviens pas à comprendre. Voici le code complet de ma connexion:
Dim connexionSQL As New SqlClient.SqlConnection
connexionSQL.ConnectionString = "Provider=MySQLProv;Data Source=C:\Program Files\MySQL\MySQL Server 4.1\data"
connexionSQL.Open
et l'erreur se fait sur la ligne suivante:
Dim connexionSQL As New SqlClient.SqlConnection
L'erreur affichée est :
User-defined type not defined
Merci d'avance!
A bientôt!