Bonjour a tous.
voici mon problème, je me suis inspiré du code trouvé sur ce site :
Mon problème est que je voudrai au niveau du strConnect remplacer C:\test.mdb par la variable strCheminBd qui récupère le chemin du fichier récupéré au auparavant par une boite de dialogue. j'ai essayé de placer la variable mais il me dis que le nom du fichier est incorrect après au niveau de l'ouverture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Dim strMotPasse As String Dim strCheminBd As String Dim strConnect As String Dim strNomsTables() As String Dim strTemp As String Dim i As Integer Dim oDb As DAO.Database Dim oDbSource As DAO.Database Dim oTbl As DAO.TableDef Dim oTblSource As DAO.TableDef 'Définit mot passe, nom table, chemin base de données strMotPasse = "admin" strCheminBd = FichierSelectionne 'Définit la chaine de connexion permettant la liaison des tables strConnect = "MS Access;pwd=" & strMotPasse & ";DATABASE=C:\test.mdb" 'Instancie l'objet Database de la base courante Set oDb = CurrentDb 'Instancie l'objet Database de la base protégée Set oDbSource = DBEngine.OpenDatabase(strCheminBd, True, True, strConnect) 'Parcours l'ensemble des tables de la base de données protégée 'et stocke leur nom For Each oTblSource In oDbSource.TableDefs 'ignore les tables system If (oTblSource.Attributes And dbSystemObject) = 0 Then strTemp = strTemp & oTblSource.Name & "|" End If Next 'Ferme la base de données sources (impératif pour la liaison) oDbSource.Close: Set oDbSource = Nothing 'parcours le tableau de noms de tables strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|") For i = 0 To UBound(strNomsTables) 'Crée une nouvelle table dans la base de données courante Set oTbl = oDb.CreateTableDef(strNomsTables(i)) 'Lie les deux tables oTbl.Connect = strConnect oTbl.SourceTableName = strNomsTables(i) 'Ajoute la table à la base de données oDb.TableDefs.Append oTbl Next i 'Rafraichit la liste des tables oDb.TableDefs.Refresh 'Message de confirmation MsgBox ("La base de contacts a bien été liée") End If
voila j'espère que vous voyez mon soucis si vous avez des solutions je suis preneur merci d'avance !
Partager