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

erreur lecture seul sur ADO

GHISLAIN

XLDnaute Impliqué
bonjour le forum,

je souhaite récupérer une feuille d'un classeur fermé et pour cela j'utilise un code de notre excelien boisgontier jacques


Fichier = ThisWorkbook.Path & "\GARDES.xlsm"

Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=Excel 12.0;"

texte_SQL = "SELECT * FROM [AGENTS$]"

Set requete = New ADODB.Recordset
Set requete = Source.Execute(texte_SQL)

'tu ajoutes une feuille a ton classeur ouvert
ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = "Agents"
'on récupère les données
ActiveSheet.Range("A1").CopyFromRecordset requete

'on ferme!
requete.Close
Source.Close
Set requete = Nothing
Set Source = Nothing

j'ai une erreur sur :
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=Excel 12.0;"

erreur d’exécution 80004005 : mise a jour impossible . La base de données ou l'objet est en lecture seule.

pourtant je regarde mon fichier gardes.xlsm et celui n'est pas en lecture seule

avez vous une idée pour débloquer ce problème

merci d'avance

amicalement

ghislain

nb :mon fichier gardes étant volumineux je ne peux le mettre sur le site
 

Roland_M

XLDnaute Barbatruc
Re : erreur lecture seul sur ADO

bonjour,

je viens de faire un essai et ça fonctionne !?

ça vient de ThisWorkbook.Path & "\GARDES.xlsm"

GARDES.xlsm n'est pas dans le répertoire de ton classeur en cours !

vérifies avec msgbox pour afficher tes variables fichier thisworkbook ...
 

GHISLAIN

XLDnaute Impliqué
Re : erreur lecture seul sur ADO

bonjour Roland_M ,

Merci d’être passé sur mon fil
Effectivement il faut mettre les deux fichiers dans le même dossier ..

Du coup çà m’arrange pas vraiment, je vais donc tester en indiquant le chemin en dur voir si çà fonctionne .Les fichiers étant séparés sur le PC

Merci

cordialement

Ghislain
 

Roland_M

XLDnaute Barbatruc
Re : erreur lecture seul sur ADO

re

ou avec une de ces deux fonctions simple à adapter

Code:
'##### FLoadNomDuREPwin le plus simple méthode Windows explorateur #####
Public Function FLoadNomDuREPwin() As String
With Application.FileDialog(msoFileDialogFolderPicker)
  .ButtonName = "OK"
  .InitialFileName = ThisWorkbook.Path & "\"
  .Title = "Sélectionnez un dossier"
  .Show
  If .SelectedItems.Count > 0 Then FLoadNomDuREPwin = .SelectedItems(1) & "\" Else FLoadNomDuREPwin = ""
 'ou direct
 'If .Show = -1 Then FLoadNomDuRepwin = .SelectedItems(1)& "\" Else FLoadNomDuRepwin = ""
End With
End Function


   
'##### select la petite boite ouvrir dossier (sans fonction ni référence) #####
'(&H0&, "Sélectionnez un dossier", &H201&, "C:\") (&H1&=avec "créer un nouveau dossier") (&H201& sans)
'Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder(&H0&, Message$, &H201&, RepParDefaut$)
Public Function FLoadNomDuREP2() As String
Dim ObjFolder As Object, Rep As String
Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Sélectionnez un dossier", &H201&, "")
If Not ObjFolder Is Nothing Then
   Rep = ObjFolder.Items.Item.Path
   If Right(Rep, 1) <> "\" Then Rep = Rep & "\"
End If
FLoadNomDuREP2 = Rep
Set ObjFolder = Nothing
End Function
 

GHISLAIN

XLDnaute Impliqué
Re : erreur lecture seul sur ADO

Re,

en mettant le nom du chemin en dur çà fonctionne , le dossier va être sur un serveur faudra pas que j'oublie de le faire
Je vais quand même tester tes propositions

merci de ton aide

Amicalement

ghislain
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…