younes3005
Messages postés13Date d'inscriptiondimanche 11 janvier 2004StatutMembreDernière intervention19 avril 2011
-
20 mai 2009 à 09:56
younes3005
Messages postés13Date d'inscriptiondimanche 11 janvier 2004StatutMembreDernière intervention19 avril 2011
-
27 mai 2009 à 11:44
A la recherche du savoir et de la connaissance
bonjour tout le monde,
j'utilise une application access (base frontale) pour me connecter à une bdd access, aussi,(base dorsale) qui est placée sur un dossier partagé accessible à tous le monde(plusieurs postes).
donc pour ce faire j'utilise une procedure qui se connecte à la base(dorsale) le probleme c'est que :
quand un utilisateur se connecte à la base(dorsale) les autres n'ont plus accés à celle-ci
younes3005
Messages postés13Date d'inscriptiondimanche 11 janvier 2004StatutMembreDernière intervention19 avril 2011 20 mai 2009 à 13:15
d'abord je supprime les tables liées avec ce code:
Public Function Déliaison()
Dim BD As DAO.Database
Set BD = CurrentDb
Dim tb As DAO.TableDef
For Each tb In BD.TableDefs
If Left(tb.Name, 4) <> "MSys" Then
If Len(tb.Connect) > 0 Then
DoCmd.RunSQL "DROP TABLE [" & tb.Name & "] ;"
Debug.Print "effacement de " & tb.Name & " -=#=> " & tb.Connect
End If
End If
Next tb
End Function
younes3005
Messages postés13Date d'inscriptiondimanche 11 janvier 2004StatutMembreDernière intervention19 avril 2011 20 mai 2009 à 13:20
puis j'utilise cette procedure pour me reconnecter à la base :
Public Sub LierTablesAuReseau()
On Error GoTo Err_Liaison '''
Dim choix As Integer
Dim strMotPasse As String
Dim strCheminBd As String
Dim strConnect, message 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
' ********** suppression des tables attchées *************
Déliaison
' ********** reconnexion à la base *************
strCheminBd = "LecteurRéseauSurServeur\BaseDorsale_DATA.mdb"
strMotPasse = "MDP"
strConnect = "MS Access;pwd=" & strMotPasse & ";DATABASE=" & strCheminBd
Set oDb = CurrentDb
Set oDbSource = DBEngine.OpenDatabase(strCheminBd, True, True, strConnect)
For Each oTblSource In oDbSource.TableDefs
If (oTblSource.Attributes And dbSystemObject) = 0 Then
strTemp = strTemp & oTblSource.Name & "|"
End If
Next
oDbSource.Close: Set oDbSource = Nothing
strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
For i = 0 To UBound(strNomsTables)
Set oTbl = oDb.CreateTableDef(strNomsTables(i))
oTbl.Connect = strConnect
oTbl.SourceTableName = strNomsTables(i)
oDb.TableDefs.Append oTbl
Next i
oDb.TableDefs.Refresh
LaConnexion = True
Sortie_Liaison:
Exit Sub
Err_Liaison:
message1 = " message d'err "
Resume Sortie_Liaison
End Sub
younes3005
Messages postés13Date d'inscriptiondimanche 11 janvier 2004StatutMembreDernière intervention19 avril 2011 27 mai 2009 à 11:44
Le mode d'ouverture par défaut est défini sur Mode partagé
au fait j'ai suivi les etapes du tuto sur la mise en place de la securité mais les changement n'agissent que sur mon pc les autres travaillent comme si de rien n'etait
j'ai reussi a avoir les 2 connexion simultanées sur la meme base mais sans mot de passe(pour la dorsale) ce qui rend mon apllication frontale obsolete puisque chaque pc peut acceder au dossier de la dorsale et modifier la base
precision: lorsque j'ai defini le mot de passe de la dorsale il fallait l'ouvrir en exclusif