kat40
Messages postés38Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention19 mars 2008
-
8 juil. 2004 à 15:25
cs_boumbo73
Messages postés107Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention16 décembre 2010
-
11 mars 2005 à 11:19
J'ai vraiment besoin de votre aide. Mon application se connecte avec ADO à une base de données access. L'application est placée sur un serveur donc je ne veux pas que deux personnes rentrent des données en même temps, donc il faut que je rendre ma connexion exclusive. Et voilà mon problème, je commence en vb, je ne sais pas comment faire.
Voici mon code:
Dim quelquun As Integer
quelquun = VerifierQqcnDepot
' If quelquun = 1 Then
' MsgBox "L'application est utilisée présentement par un autre utilisateur" + vbNewLine + "Veuillez réessayer dans quelques minutes"
' recevoirUtilise5 (True)
' Unload Me
' Else
' Call frmZEcrireBase.EcrireQuelquunDepot(1)
If TestBD() = True Then
Dim chemin As String
chemin = chercherChemin
adoDepot.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin & ";Persist Security Info=False"
adoDepot
adoDepot.RecordSource = "Depot"
adoDepot.CursorLocation = adUseClient
adoDepot.CursorType = adOpenDynamic
adoDepot.LockType = adLockOptimistic
adoDepot.Refresh
txtDepot.Enabled = False
txtMontant.Enabled = False
txtEncaisse.Enabled = False
cmdAnnuler.Enabled = False
cmdModifier.Enabled = True
cmdAjouter.Enabled = True
cmdAccepter.Enabled = False
cmdSupprimer.Enabled = True
lstMontant.Enabled = False
lstDateDepot.Enabled = False
lstEncaisse.Enabled = False
RemplirListe
If adoDepot.Recordset.RecordCount > 0 Then lstDepot.ListIndex = 0
calendrier.Today
Else
MsgBox "Impossible de trouver la base de données." + vbNewLine + "Veuillez vous assurer que le chemin est valide." + vbNewLine + "Pour en changer le chemin, allez dans OUTILS --> Base de données --> Parcourir(choisir la base de données) -- > Appliquer", vbCritical, "Erreur"
txtDepot.Enabled = False
txtMontant.Enabled = False
txtEncaisse.Enabled = False
cmdAnnuler.Enabled = False
cmdModifier.Enabled = False
cmdAjouter.Enabled = False
cmdAccepter.Enabled = False
cmdSupprimer.Enabled = False
lstMontant.Enabled = False
lstDepot.Enabled = False
lstDateDepot.Enabled = False
lstEncaisse.Enabled = False
End If
' End If
End Sub
Présentement, lorsqu'UNE personne ouvre le formulaire, un 1 s'inscrit dans la base pour la bloquer et lorsqu'il quitte un 0 s'inscrit, ce qui permet de liberer l'application. Cette façon de procéder n'est pas l'idéale et je voudrais la simplifier.
Je travaille des postes XP avec Access 2002 par contre le serveur est sous NT.
N.B: J'aimerais que lorsqu'une personne essai de se connecter et que l'application est occupée, un msgbox l'avise d'attendre!!!!
Pour moi c'est compliqué mais peut-être que quelqu'un connait la solution.
Encore un gros merci de prendre le temps de me lire et surtout de m'aider
cs_boumbo73
Messages postés107Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention16 décembre 2010 11 mars 2005 à 11:19
Bonjour,
Alors je ne sais pas si tu as trouvé la solution mais un petit msgbox permettrait de gerer l'accès au formulaire.Tu déclares en public 'quelquun' comme ca c'est accessible dans toute la base. Et tu vérifies avant l'accès au formulaires si 'quelquun' est tu met un msgbox et tu bloquse le bouton (bouton.enabled false).
Et qd qqun quitte le formulaire quelquun passe à 0
Si tu as trouvé une autre solution, je veux bien savoir comment tu as fait !