Compatibilité ADODB 2003-2007

cbarbier

XLDnaute Nouveau
Bonjour,

J'ai un code VB d'extraction de données d'une base MySQL qui marchait en Excel 2003 et qui sort en erreur "L'indice n'appartient pas à la sélection" en Excel 2007.

J'utilise ADODB, en résumé :

Dim DbConnection As ADODB.Connection
Dim RecSet As ADODB.Recordset

'Connexion
Set DbConnection = New ADODB.Connection
DbConnection.ConnectionString = "DATABASE=bipom;DRIVER={MySQL ODBC 5.1 Driver...}
DbConnection.Open

'Lecture des données
Set RecSet = New ADODB.Recordset
request = "SELECT projets.nom AS Projet...."
Set RecSet = DbConnection.Execute(request)

L'erreur apparait sur l'execution de la requete (DbConnection.Execute).
Est-ce que quelqu'un aurait une idée ?
Je l'en remercie par avance.

Claude Barbier
 
Dernière édition:

cbarbier

XLDnaute Nouveau
Re : Compatibilité ADODB 2003-2007

J'ai finalement résolu le problème...qui n'a que peu à voir avec ADODB.
J'ai dû mettre un "Err.clear" en amon des appels à ADODB car il y avait une erreur 9 positionnée par le code précédent (pour une raison totalement obscure) et cette erreur n'est pas purgée lors de l'appel "dbconnexion.execute", bizarre... :

' RAZ de l'onglet
Sheets(onglet).Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Err.Clear 'Le code qui prècède positionne l'erreur 9 si on ne clear pas cette erreur perturbe le code qui suit

'Connexion
Conn = "DATABASE=bipom;DRIVER={MySQL ODBC 3.51 Driver};OPTION=0;PORT=0;SERVER=server;UID=lecture"
Set Cn = New ADODB.Connection
Cn.ConnectionString = Conn
Cn.Open
If Cn.State <> adStateOpen Then
Cn.Close
MsgBox ("Extract : Connection Error : " & Err.Description)
ExtractSheet = False
Exit Function
End If

'Execute request
Set Rs = New ADODB.Recordset 'Init objet requete
Set Rs = Cn.Execute(request) 'Execute the Query
If Err <> 0 Then
MsgBox ("Onglet " & onglet & " : Extract Error" & Err.Description)
ExtractSheet = False
Exit Function
End If


Claude Barbier
 

soenda

XLDnaute Accro
Re : Compatibilité ADODB 2003-2007

Bonsoir le fil,

Voir aussi
Code:
' RAZ de l'onglet
Sheets(onglet).[COLOR=blue][B]Activate[/B][/COLOR]     [COLOR=seagreen]' un seul onglet activé[/COLOR]
Cells.[B][COLOR=blue]Select[/COLOR][/B]                [COLOR=seagreen]' plusieurs cellules sélectionnées[/COLOR]
Selection.ClearContents
Range("A1").[COLOR=blue][B]Activate[/B][/COLOR]        [COLOR=seagreen]' une seule cellule activée[/COLOR]
[COLOR=#2e8b57]...[/COLOR]
L'aide MS recommande d'alterner Select et Activate ...

A plus
 
Dernière édition:

Statistiques des forums

Discussions
312 715
Messages
2 091 289
Membres
104 836
dernier inscrit
baxx86