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.

Respuesta
1

[Hola

De lo que muestras, el problema no parece estar en el código, por si acaso. Otra cosa, el método "Workspaces" solo te sería válido si usases VBA desde Access pero tú usas el de Excel.

Entonces, prueba lo siguiente:

1- Abre tu archivo Access, anda a "Archivo" - "Opciones" - "Configuración de cliente" y ahí en "Avanzadas ", asegúrate de que en "Modo predeterminado de apertura" esté activa la opción "Compartido" y en "Bloqueo predeterminado de registros" la activa sea "Sin bloquear".

De estar correcto eso ...

2- Tienes que confirmar que la carpeta en donde se encuentra tu base de datos de Access sea compartida (lectura y escritura) con todos los usuarios que acceden a través de tu archivo de Excel. Ah, por cierto, lo ideal es que la carpeta sea una del servidor, no de la PC de un usuario.

De ser correcto eso...

3- Dale click derecho a la carpeta que contiene tu base de datos de Access, elige "Propiedades" y asegúrate de que la opción de "solo lectura" NO esté activada.

¿Nada aún?

4- Abre tu base de datos Access anda a "Archivo", dale a "Compactar y reparar base de datos" y vuelve a probar.

Si a pesar de todo eso siguen los problemas, trata de algún modo de hacer captura de pantalla del error y envíalo por aquí y, sobre todo, menciona en qué momento exacto ocurre, es decir, al intentar correr qué código.

Saludos]

Abraham Valencia

Muchas gracias por tu respuesta, todo los pasos que me habéis recomendado esta todo OK.

Pero hoy he vuelto hacer una prueba y volvió a salir  aveces no. lanzo múltiples consulta a la base de datos desde 2 ordenadores y en uno de ellos lanza el error: 

La base de datos junto con los archivos es una unidad de red compartida alojado en España que se usa para todas las plataforma. de momento estoy allí tratando de mitigarlo y creo que ya no es tan seguido el error. Pero me gustaría que no apareciera mas. 

No se pudo usar 'J:\OTROS\Formaci\TP VENTAS - BETA\Ventas vodafone - Final\BD_Ventas\BD_Principal.accdb'; el archivo ya está en uso.

[Hola nuevamente

Si ya revisaste todo, solo hay dos posibilidades:

- La conexión de red es "inestable", lo que solo puede ser resuelto/verificado por tu administrador de la red

- El dilema está en el código usado ¿es posible saber en específico con qué código ocurre eso? Es decir si es, por ejemplo, al presionar cierto botón ¿qué código tiene? OJO, la respuesta debe ser precisa, con certeza de que al usar ese objeto ocurre eso.

Abraham Valencia

Abraham Valencia muchas gracias por tu ayuda ya encontré el problema lo que pasa es que la partición donde esta el archivo que se usa en España, Colombia y perú, cada cierto tiempo se pone 0 Bytes disponibles y claro es cuando empieza a ocurrir el error. Pero ya mañana lo voy a migrar a otra partición local que no presenta estos problemas. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas