Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ADODB Connection

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sly le globe trotter

XLDnaute Occasionnel
Bonjour à tous,

J'ai développé depuis mon PC un bout de code qui vient importer des données dans une base Access.
Code:
Option Explicit
Option Compare Text
Const Chemin = "\\Ordi237\Rebond$\"
Const BaseMDB As String = "BddRebond.mdb"

Private Sub UserForm_initialize()
' Initialisation de la userform

Dim Conn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

On Error GoTo Fin

ListBoxListCamp.Clear

' Chargement de la liste des raquettes de la base
Conn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & "Data Source='" & Chemin & BaseMDB & "';"
Rst.Open "SELECT * FROM [BoundHeight] ORDER BY [TestCode]", Conn, adOpenKeyset, adLockOptimistic, adCmdTableDirect

Rst.MoveFirst
Do Until Rst.EOF
    ListBoxListCamp.AddItem (Rst.Fields("TestCode"))
    Rst.MoveNext
Loop

Fin:
    Conn.Close
    Set Rst = Nothing
    Set Conn = Nothing
End Sub

Sur mon PC, pas de souci, tout fonctionne.
Quand je cherche à executer le même code depuis un autre PC, j'ai un message d'erreur "Erreur d'éxécution 440, Erreur d'automation".
J'ai jeté un coup d'oeil aux références qui sont bien les mêmes, quelque soit le PC depuis lequel je lance ma macro...

Auriez-vous une piste pour éclairer ma lanterne ???

Mille mercis
Sly
 
Dernière édition:
Re : ADODB Connection

Bonjour,

Faites un test avec

Code:
Option Explicit
Option Compare Text
Const Chemin = "\\Ordi237\Rebond$\"
Const BaseMDB As String = "BddRebond.mdb"

Private Sub UserForm_initialize()
' Initialisation de la userform

Dim Conn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

On Error GoTo Fin

ListBoxListCamp.Clear
[COLOR="Red"]'''Conn.Open    '???[/COLOR]
' Chargement de la liste des raquettes de la base
Conn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & "Data Source='" & Chemin & BaseMDB & "';"
Rst.Open "SELECT * FROM [BoundHeight] ORDER BY [TestCode]", Conn, adOpenKeyset, adLockOptimistic, adCmdTableDirect

Rst.MoveFirst
Do Until Rst.EOF
    ListBoxListCamp.AddItem (Rst.Fields("TestCode"))
    Rst.MoveNext
Loop

Fin:
[COLOR="Blue"]If Err <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description '///ajout[/COLOR]
    Conn.Close
    Set Rst = Nothing
    Set Conn = Nothing
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : ADODB Connection

Salut Patrick,

Merci de ta réponse.

La ligne que tu as surlignée en rouge est un reste de test, pas de souci.

Je viens de faire le test avec l'ajout de la ligne de code que tu proposais et ai donc trouvé la réponse à mon problème. Le message m'indique que le fichier auquel je cherche à accéder est en cours d'utilisation. En fermant la base Access, plus de problème !

Une question cependant... Comment expliquer qu'en fonction du PC depuis lequel je lance mon code, le fait que la base Access soit ouverte ne pose pas toujours un problème ???

Merci encore en tout cas
Sly
 
Re : ADODB Connection

Bonjour,

Une question cependant... Comment expliquer qu'en fonction du PC depuis lequel je lance mon code, le fait que la base Access soit ouverte ne pose pas toujours un problème ???

Je ne suis pas péremptoire pour ce qui suit :

Ce n'est peut-être pas en fonction du PC que le problème apparaît mais lorsque la base Access est déjà ouverte pour l'écriture. Allez voir le lien suivant

MODÈLE : erreur ouvrir un objet Recordset ADO à partir d'un fichier


Cordialement.

PMO
Patrick Morange
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
1
Affichages
992
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…