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
| Sub MAJUserMdp(NomDSN As String, NouvDatabase As String, NouvUser As String, NouvPwd As String)
Dim TDef As DAO.TableDef, ChaineConnect, i As Long, Places(1 To 4) As Long, NouvChaineConnect As String
'Pour chaque table
For Each TDef In CurrentDb.TableDefs
'S'il y a une table source (table liée)
If TDef.SourceTableName <> "" Then
ChaineConnect = Split(TDef.Connect, ";")
Places(1) = -1
Places(2) = -1
Places(3) = -1
Places(4) = -1
For i = LBound(ChaineConnect) To UBound(ChaineConnect)
'Identifie places DSN, DATABASE, UID, PWD
If UCase(ChaineConnect(i)) Like "DSN=*" Then
Places(1) = i
ElseIf UCase(ChaineConnect(i)) Like "DATABASE=*" Then
Places(2) = i
ElseIf UCase(ChaineConnect(i)) Like "UID=*" Then
Places(3) = i
ElseIf UCase(ChaineConnect(i)) Like "PWD=*" Then
Places(4) = i
End If
Next i
'Si tout trouvé
If Places(1) >= 0 And Places(2) >= 0 And Places(3) >= 0 And Places(4) >= 0 Then
'Si bon DSN, mise à jour chaine connection
If UCase(ChaineConnect(Places(1))) = "DSN=" & UCase(NomDSN) Then
ChaineConnect(Places(2)) = "DATABASE=" & NouvDatabase
ChaineConnect(Places(3)) = "UID=" & NouvUser
ChaineConnect(Places(4)) = "PWD=" & NouvPwd
NouvChaineConnect = Join(ChaineConnect, ";")
TDef.Connect = NouvChaineConnect
TDef.RefreshLink
End If
End If
End If
Next TDef
CurrentDb.TableDefs.Refresh
End Sub |
Partager