Problèmes dand une connection ADODB

F

fodjio

Guest
Bonjour à tous,

j'utilise une connection ADODB pour importer une base de données contenue dans une feuille Excel.

Tout marche sauf que le programme (sur certains poste), m'ouvre les classeurs où sont situées les données (alors qu'ils doivent normalement rester fermés )

Vàci le code de connection ->

***************************************************

Const NomPlage As String = "BdD"
Dim i As Byte
Dim NomFichier As String
Dim RequeteSQL As String
Dim Reponse As Long
Dim ConnectionADODB As New ADODB.Connection
Dim RecordsetADODB As ADODB.Recordset
Dim CommandADODB As New ADODB.Command

RequeteSQL = "SELECT * FROM [" & NomPlage & "] " _
& "WHERE Tournée IS NOT NULL " _
& "ORDER BY Jour, Tournée, Produit, Référence, Teinte, Côté"

'Connection à la base de données
With ConnectionADODB
.Mode = adModeRead
On Error GoTo MauvaiseConnection
.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & FichierSource(i) & ";" & _
"Extended Properties=""Excel 8.0;HDR=yes;IMEX=1;"""
On Error GoTo 0
End With

With CommandADODB
.CommandType = adCmdText
.CommandText = RequeteSQL
.ActiveConnection = ConnectionADODB
End With

Set RecordsetADODB = CommandADODB.Execute

TabBase(i).Range("A2").CopyFromRecordset RecordsetADODB

RecordsetADODB.Close
ConnectionADODB.Close

*******************************************************

valà, merci de me donner une explication ou encore mieux une solution...
En esperant, d'avance merci beaucoup...
 
M

Michel_M

Guest
Bonjour,

Il est difficille de te donner une réponse lorsque tu écris "certains postes" ce qui n'apporte aucune précision quant à la cause du pb...

Toutefois en regardant ton prog quelques remarques qui n'ont peut être rien à voir avec ce pb :

Malgré que l'aide Microsoft l'écrive, il ne faut pas déclarer :

dim machin as new adodbconnexion

mais dim machin as adodbconnexion

puis dans le prog
set machin= new adodbconnection

et à la fin de la macro
set machin =nothing

idem pour les autres objets ADO et autres...

voir aide microsoft -tu trouves l'aide microsoft sur ADO dans l'aide ... Access-:
..."Lorsque vous avez terminé vos opérations sur une connexion ouverte, utilisez la méthode Close pour libérer les ressources système associées. La fermeture d'un objet ne supprime pas celui-ci de la mémoire. Vous pouvez modifier les valeurs de sa propriété et utiliser la méthode Open pour le rouvrir ultérieurement. Pour éliminer définitivement un objet de la mémoire, affectez la variable objet de la valeur Nothing."...

ci joint un topo super-intéressant de @+Thierry sur ce problème où on avait été quelques uns à se prendre la t^te

le pb vient PEUT-ETRE de ca

Au passsage
tu écris:
.Mode = adModeRead
comme tu ne fais que lire dans le classeur cette ligne est inutile...

A+
Michel
 

Pièces jointes

  • set_new.zip
    4.7 KB · Affichages: 19
F

fodjio

Guest
Salut Michel, et encore merci de me venir en aide...

Mais est-ce que tu pourrai me dire quel est la différence entre :

- dim machin as new adodbconnexion
et
- dim machin as adodbconnexion
set machin= new adodbconnection
??

est-ce que cela change réellement le comportement du programme??
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu