Access - permitir sólo un usuario

 
Vista:

permitir sólo un usuario

Publicado por Gubert (28 intervenciones) el 16/03/2007 20:24:19
Hola, tengo una base de datos en un servidor y quiero que sólo pueda usarla un sólo usuario a la vez. Se me ocurre que se puede hacer comprobando si existe el archivo ldb que crea access cuando se abre la base de datos, pero no se que instrucción se utiliza para comprobar si existe un archivo (en la misma ruta del archivo origen).

He probado la opción "Abrir en modo exclusivo" y no me funciona.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:permitir sólo un usuario

Publicado por Manuel (268 intervenciones) el 17/03/2007 05:56:01
Para verificar si existe un archivo en un directorio utilizas la funcion Dir (al igual como lo haciamos en el antiguo DOS) y para darle la ruta pudieras usar path. No soy mas explicito por que todo esto esta en la ayuda de access

Saludos
Manuel Santos
Venezuela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:permitir sólo un usuario

Publicado por Gubert (28 intervenciones) el 17/03/2007 23:13:04
Gracias manuel, tu información me ha sido util. Pero mi idea no era tan buena, pues el archivo ldb se crea en cuanto se abre la base de datos, con lo que al comprobar si existe siempre aparece, aunque seas el único usuario.

Un saludo desde España.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:permitir sólo un usuario

Publicado por Manuel (268 intervenciones) el 17/03/2007 23:21:11
Existe una manera de comprobar que maquina esta conectada a la base de datos, leyendo los datos del archivo ldb, quizas esto te sea util, de esa manera podras determinar cual es la maquina activa y bloquear la apertura para las otras maquinas.

Option Compare Database
Option Explicit

Const adhcUsers = "{947bb102-5d43-11d1-bdbf-00c04fb92675}"
Const adhcAllowUsers = "Allow New Users"
Const adhcDisallowUsers = "Disallow New Users"

Sub BuildUserList()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim Fld As ADODB.Field
Dim intUser As Integer
Dim strUser As String
Dim varVal As Variant

' Headings
strUser = "Computer;UserName;Connected?;Suspect?"
'Set cnn = Prj.Connection
Set cnn = CurrentProject.Connection
Set rst = cnn.OpenSchema(Schema:=adSchemaProviderSpecific, SchemaId:=adhcUsers)
With rst
Do Until .EOF
intUser = intUser + 1
For Each Fld In .Fields
varVal = Fld.Value
If InStr(varVal, vbNullChar) > 0 Then
varVal = Left(varVal, _
InStr(varVal, vbNullChar) - 1)
End If
strUser = strUser & ";" & varVal
Next
.MoveNext
Loop
End With
txtUsers = intUser
lboUsers.RowSource = strUser
rst.Close
Set rst = Nothing
Set Fld = Nothing
Set cnn = Nothing
End Sub

Private Sub cmdShutdown_Click()
If cmdShutdown.Caption = adhcDisallowUsers Then
' Initiate connection control and fixup
' button caption
CurrentProject.Connection. _
Properties("Jet OLEDB:Connection Control") = 1
cmdShutdown.Caption = adhcAllowUsers
Else
' Undo connection control and fixup
' button caption
CurrentProject.Connection. _
Properties("Jet OLEDB:Connection Control") = 2
cmdShutdown.Caption = adhcDisallowUsers
End If
End Sub

Esta es la funcion, revisala y ve como te funciona, con el segundo procedimiento puedes indicarle que no se puedan conectar mas usuarios

Saludos
Manuel Santos
Venezuela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar