Bonjour,

Je fais mon premier programme en Visual Basic 2005 express à partir d'un programme VB sur Excel qui fonctionne tres bien sur une base MySQL en ADO.

J'ai recréé les formulaires, copier/coller les procédures, mis les mêmes références et j'ai 2 problèmes que je n'arrive pas à solutionner :

le 1er problème :
J'ai le message d'erreur "n'est pas déclaré" sur toutes les options de ADO comme aduseServer, adOpenStatic, adLockReadOnly, ...
par exemple sur ma procédure de connexion :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Public Sub ConnexionBase()       
        cnx = New ADODB.Connection
        cnx.ConnectionString = "DRIVER={MySQL};"& 
           "SERVER=XXX.XXX.XXX.XXX;" & " DATABASE=Laura;"
            & "UID=root;PWD=XXXXXX; OPTION=3"
        cnx.CursorLocation = aduseServer
        cnx.Open()
End Sub
aduseServer est en erreur : "Le nom 'aduseServer' n'est pas déclaré"


Le 2ème problème :
Sur ma fonction

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
20
21
22
23
Public Function RecupNbreService() As Integer
        Dim sqlid As String
        Dim rs As ADODB.Recordset  'Déclarer le RecordSet
        Dim id As Integer

        id = 0
        sqlid = "SELECT Count(Client)FROM Services;"

        Call ConnexionBase()

        rs = New ADODB.Recordset  'Créer une instance de RecordSet
        rs.Open(sqlid, cnx, adOpenStatic, adLockReadOnly)  ' L’ouvrir

        id = rs(0)  ' Accés à la valeur

        rs.Close()  'Fermer le RecordSet
        rs = Nothing  'Libérer la mem. 

        Call DeconnexionBase()

        RecupNbreService = id

 End Function
sur la ligne id = rs(0) j'ai le message d'erreur "Une valeur de type 'ADODB.Field' ne peut pas être convertie en 'Integer'."

Même si je mets , j'ai le même message. (J'ai la même erreur quand j'ai un format Date ou Boolean).


Avez vous des idées ?

Merci de votre aide.

Amicalement Laurent