Forzar cierre de access desde excel

Desde una macro de Excel los usuarios pueden abrir una base de access guardar la información y cerrar la misma, el problema se da cuando alguno de ellos cierra la macro a mitad de el guardado de información o tienen algún bloqueo de red ya que el archivo queda abierto por ese usuario y el resto no puede guardar la información, ¿alguien sabe alguna manera de forzar el cierre de una base access cuando está quedo abierta?.

1 respuesta

Respuesta

[Hola

Pues dos cosas:

1- No es conveniente trabajar abriendo los archivos de Access, lo ideal es conectarse al archivo sin que se visibilice ¿o por alguna otra razón lo tienes que abrir?

2- Así se abra, no debería quedar bloqueado. Quizá lo abres en "Modo exclusivo" (no has dado detalles de como abres el archivo) o quizá el archivo Access está solo configurado justamente en "Modo exclusivo".

Abraham Valencia

Gracias por la contestación, realmente lo que hice fue crear una base de datos desde una macro con Excel 

Dim catalog as adox.catalog

Dim new_table as adox.table

Set new_table =createobject (adox.table)

New_table.name=tablename

Newtable.columns.append "cedula*"

'aqui creo todos los campos que necesito

Catalog.tables.append new_table

Una vez que se creó la tabla los usuarios trabajan en sus propias macros y al final desde esta macro guarda la información en access de esta manera

Set cn=new adodb.connection

Cn.open datasource

Set rs=new adodb.recordset

Rs.open tablename, con, adopenkeyset, adlockoptimistic,adcmdtable

With rs

.addnew

.fields ("cédula")=cédula

'ingreso de todos los campos

.update

End with

Rs.close

Set rs=nothing

Cn.close

Cn=nothing

Y funciona con varios usuarios al mismo tiempo el problema se da cuando alguno corto la grabación a la mitad ya sea porque el usuario tenía la clave vencida o presionó esc y la conexión queda abierta porque se bloquea para los otros usuarios, por eso quería saber si se puede desconectar de alguna manera para que el resto pueda usar

No sé si se está abriendo en modo exclusivo. Si me puedes dar alguna idea te lo agradecería mucho

No queda claro ¿creaste una sola vez esa base de datos con código o cada vez creas una base de datos nueva? De ser lo segundo ¿cómo es que todos se conectan en red cada vez que la creas? De ser lo primero ¿nunca cierras (usando "Close") la base de datos? ¿Por qué crearla con código si es para usar en red? No has dado los suficientes detalles.

De haberla creado con código pero ahora usarla siempre, abre el archivo, anda a "Archivo" -"Opciones" - "Configuración de cliente" - (grupo) "Avanzadas" y ahí verifica que esté marcada la opción "Compartido".

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas