Probleme de variable lien pour importer des données .mdb

jojo2006

XLDnaute Occasionnel
Bonjour à tous,

voila je souhaiterai importer des données à partir d'une variable string qui est le lien d'acces au fichier

disons

j'ai enregistrer la macro et je voudrais adapter le code à ma variable mais cela ne fonctionne pas, j'ai une boite de dialogue qui s'affiche

"tapez les informations d'initialisation de MS JET OLE DB" ??????

voici mon code

lien = "C:\Documents and Settings\e374290\Desktop\toto.mdb"


With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=lien;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database" _
, _
" Password="""";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk" _
, _
" Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet O" _
, _
"LEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
), Destination:=Cells(i, 1))
.CommandType = xlCmdTable
.CommandText = Array("definition")
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = lien
.Refresh BackgroundQuery:=False
End With


pour moi c'est "lien" en rouge qui pose probleme, mais je ne vois pas comment l'adapter, ca n'a pas l'air d'être une variable string ? J'ai essayé aussi " & lien & " sans succes

Et puis la différence entre Data source et sourceDatafile ??? je ne vois pas trop


Merci pour votre aide
 
C

Compte Supprimé 979

Guest
Re : Probleme de variable lien pour importer des données .mdb

Bonjour Jojo2006

Avec l'enregistreur de macro, le String de connexion est à chi*r
Petite recherche sur le net, tu devrais trouver ton bonheur ;)

A+
 

MJ13

XLDnaute Barbatruc
Re : Probleme de variable lien pour importer des données .mdb

Bonjour Jojo, Bruno

Normalement Henry est ton ami :eek:

As tu essayé, mais sans conviction :confused:

Code:
lien = "'C:\Documents and Settings\e374290\Desktop\toto.mdb'"
 
Dernière édition:

jojo2006

XLDnaute Occasionnel
Re : Probleme de variable lien pour importer des données .mdb

Bonjour,

lien = "'C:\Documents and Settings\e374290\Desktop\toto.mdb'"

non désolé cela ne fonctionne pas

Mais c'est tout de même bizzare !! ?

j'ai un peu de mal à trouver avec mon ami google.... avez vous une piste ?

Merci à tous
 

jojo2006

XLDnaute Occasionnel
Re : Probleme de variable lien pour importer des données .mdb

Bonjour voici le code exact sans variable

le lien est:

C:\Documents and Settings\e374290\Desktop\screen\C0001004979F.mdb

et je souhaiterai le mettre en variable (en string)

Merci à tous


Code:
Sub import()
'
' import Macro
' Macro enregistrée le 12/04/2011 par e374290
'

'
    With ActiveSheet.QueryTables.Add(Connection:=Array( _
        "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Documents and Settings\e374290\Desktop\screen\C0001004" _
        , _
        "979F.mdb;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database" _
        , _
        " Password="""";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk" _
        , _
        " Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet O" _
        , _
        "LEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
        ), Destination:=Range("A2"))
        .CommandType = xlCmdTable
        .CommandText = Array("definition")
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = _
        "C:\Documents and Settings\e374290\Desktop\screen\C0001004979F.mdb"
        .Refresh BackgroundQuery:=False
    End With
    
    
End Sub
 
C

Compte Supprimé 979

Guest
Re : Probleme de variable lien pour importer des données .mdb

Salut Jojo2006

Essaye ça
VB:
Sub import()
  Dim VPath As String, BdD As String
  VPath = "C:\Documents and Settings\e374290\Desktop\screen\"
  BdD = "C0001004979F.mdb"
  With ActiveSheet.QueryTables.Add(Connection:= _
                                   "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & VPath & "\" & BdD, Destination:=Range("A2"))
    .CommandType = xlCmdTable
    '.CommandText = Array("definition")
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .SourceDataFile = VPath & "\" & BdD
    .Refresh BackgroundQuery:=False
  End With
End Sub

A+
 

jojo2006

XLDnaute Occasionnel
Re : Probleme de variable lien pour importer des données .mdb

Bonjour,

merci mais désolé cela ne fonctionne pas

erreur d'execution 1004
source de données incomplete


Pourtant je confirme que le fichier est OK ( le code d'origine "sans variable" fonctionne bien )

Vous avez d'autres idées

Merci d'avance
 

MJ13

XLDnaute Barbatruc
Re : Probleme de variable lien pour importer des données .mdb

Bonjour Jojo, Bruno

Essaye ceci (sans conviction, n'étant pas un spécialiste d'Access :eek:).

Code:
Sub import()
'
' import Macro
' Macro enregistrée le 12/04/2011 par e374290
'

'
lien = "C:\Documents and Settings\e374290\Desktop\screen\C0001004979F.mdb"
    With ActiveSheet.QueryTables.Add(Connection:=Array( _
        "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & lien & ";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database" _
        , _
        " Password="""";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk" _
        , _
        " Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet O" _
        , _
        "LEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
        ), Destination:=Range("A2"))
        .CommandType = xlCmdTable
        .CommandText = Array("definition")
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        '.SourceDataFile = _
        "C:\Documents and Settings\e374290\Desktop\screen\C0001004979F.mdb"
        .Refresh BackgroundQuery:=False
    End With
    
    
End Sub
 

jojo2006

XLDnaute Occasionnel
Re : Probleme de variable lien pour importer des données .mdb

bonjour,
merci pour ta proposition mais j'ai une erreur:

erreur d'exécution '13'
Incompatibilité de type


Je vous joins le fichier (.mdb zippé ) essayer chez vous pour voir

données => données externes => importer des données sélectionner le fichier mdb et choisir une table au choix

Merci à tous d'avance
 

Pièces jointes

  • C0001004979F.zip
    7.2 KB · Affichages: 37

MJ13

XLDnaute Barbatruc
Re : Probleme de variable lien pour importer des données .mdb

Re

Essaye ainsi (utilisateur à adapter):

Tu peux aussi tester en accdb au lieu de mdb.

Code:
Sub Macro3()
'
' Macro1 Macro
'

'
Lien = "C:\Documents and Settings\utilisateur\Bureau\C0001004979F.mdb"
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
        "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & Lien & "" _
        , _
        ";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Passwo" _
        , _
        "rd="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transa" _
        , _
        "ctions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Do" _
        , _
        "n't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Da" _
        , "ta=False"), Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdTable
        .CommandText = Array("definition")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = _
        "C:\Documents and Settings\Utilisateur\Bureau\C0001004979F.mdb"
        .ListObject.DisplayName = "Tableau_C0001004979F.mdb"
        .Refresh BackgroundQuery:=False
    End With
 
Dernière édition:

jojo2006

XLDnaute Occasionnel
Re : Probleme de variable lien pour importer des données .mdb

Re merci

mais Arf

erreur d'exécution 5
argument ou appel de procedure incorret


ici

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & lien & "" _
, _
";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Passwo" _
, _
"rd="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transa" _
, _
"ctions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Do" _
, _
"n't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Da" _
, "ta=False"), Destination:=Range("$A$1")).QueryTable




C'est fou ca !!


Pourtant je vois pas ou ca bloque.... On peut bien passer un lien en variable string ... J'y comprends rien

Vous voyez le loup ???


Merci d'avance
 

MJ13

XLDnaute Barbatruc
Re : Probleme de variable lien pour importer des données .mdb

Re

Bon après, il n'y a pas de secret, il faut tester en enregistrant avec l'enregistreur et debugger (je n'ai pas eu trop de problème :)).

A ce niveau, Je pense que tout est la.

Code:
Data Source=" & lien & ""

Je ne peux pas en faire plus :eek:.
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 844
dernier inscrit
atori2