Problemas con las Consulta SQL desde visual basic 7.1 en Access, varias consultas a la vez.
Tengo un problema con una aplicación que estoy utilizando con aproximadamente 153 personas, la aplicación es para registrar las ventas a un grupo de personas que se encargan de gestionarlas.
Esta creada en visual basic 7.1 Excel 2013 conectada con base de datos access por que son las herramientas que tenemos disponibles dentro de la plataforma de call center.
Todo funciona bien pero hay un error que aveces salta y es cuando 2 o 3 usuarios a las vez están haciendo las consultas a la base de datos, he realizado pruebas entre 3 compañero cada uno en su ordenador hacer exactamente lo mismo y de repente salta el siguiente error. "error “no se pudo usar el archivo [Ruta donde esta ubicada la base de datos] ya en uso".
Ese error ya estuve buscando información he configurado la base de datos y todo y aun continua con el mismo problema.
Aveces creo que puede ser la consulta SQL que no esta bien y por eso no hacer varias consultas a la vez en multiusuario como debe ser.
Dejo aquí parte de las consultas que utilizo agradezco que alguien me pueda ayudar con este tema.
Public miConexion As New ADODB.Connection
Public Rs As New ADODB.Recordset
Sub BD_Principal()
Set miConexion = New ADODB.Connection
With miConexion
.Provider = "Microsoft.ACE.OLEDB.15.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\BD_Ventas\BD_Principal.accdb"
.Open
End With
End Sub
======================= Contar cantidad de registros ==================
Call BD_Principal
Set Rs = New ADODB.Recordset
Rs. Open "SELECT Count (USUARIO_AGENTE) as CONTAR_REGISTROS FROM TB_Principal", miConexion, adOpenKeyset, adLockOptimistic, adCmdText
Label96 = Rs("CONTAR_REGISTROS")
=========== Carga de datos en un ListBox de acuerdo al usuario de la persona ===============
ListBox7.Clear
Call BD_Principal
Set Rs = New ADODB.Recordset
Rs.Open "SELECT FECHA_Y_HORA, NOMBRE_Y_APELLIDO, MOVIL_CONTACTO, ID_ORDEN_INTERACCION, PRODUCTO_VENTA FROM TB_Principal WHERE USUARIO_AGENTE = '" & Label81.Caption & "' ORDER BY FECHA_Y_HORA DESC", miConexion, adOpenKeyset, adLockOptimistic, adCmdText
While Rs.EOF = False
Me.ListBox7.AddItem Rs!FECHA_Y_HORA
Me.ListBox7.List(vv, 1) = Rs!NOMBRE_Y_APELLIDO
Me.ListBox7.List(vv, 2) = Rs!MOVIL_CONTACTO
Me.ListBox7.List(vv, 3) = Rs!ID_ORDEN_INTERACCION
Me.ListBox7.List(vv, 4) = Rs!PRODUCTO_VENTA
vv = vv + 1
Rs. MoveNext
Wend
=================== Cierro la conexión ================
Rs. Close
MiConexion. Close
Sin cerrar la conexion creo que error no se genera pero se hace muy lento las consultas y las gestiones pero alli dejo una parte de como estoy haciendo las consultas a la base de datos. Aver si esta bien,
GRACIAS!
Este es uno de los métodos que encontré pero no se como aplicarlo alli.
Método 1:
Para solucionar esto, solo necesita abrir el archivo con modo compartido. Debajo están los pasos completos de lo que debes hacer, y seguramente solucionará tu problema. Vaya a Herramientas-> Opciones-> Avanzado. Y aquí cambia el modo abierto predeterminado de Exclusivo a Compartir. Función OpenDatabase pero si está abriendo el archivo MS Access DB desde otro archivo de acceso MS usando la función OpenDatabase, entonces aplique el siguiente código para evitar este error. Esto también está relacionado con el modo abierto.
Establecer gblWS = DBEngine.Workspaces (0)
Establezca gblExtDB = gblWS.OpenDatabase (“[nombre de archivo]”, False, False)
Aquí el primer parámetro es la cadena de ruta y el nombre de archivo de su archivo de base de datos. Mientras que, el segundo parámetro es la clave para resolver este problema. Es el modo abierto; donde falso es el modo compartido y verdadero es el modo exclusivo.
El último parámetro es la opción de solo lectura. Así que establezca esto en falso y puede escribir en el archivo DB.