Visual Basic para Aplicaciones - Reporte Access 2010 o superior

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Reporte Access 2010 o superior

Publicado por Ricardo (10 intervenciones) el 29/08/2018 15:54:42
Buenas tardes a todos.
Estoy haciendo una aplicación en la cual debo ejecutar un informe en access 2010, he logrado en el pasado ejecutar reportes de access 2003, pero usando el mismo codigo, y la libreria de que dispongo 14.0 no nunciona, no tira error, lee, ejecuta el informe y habilita el servicio pero nunca pasa a la próxima linea de codigo osea nunca cierra la bd por tanto se clava la aplicación.-
código que uso

Option Explicit
Dim oAccess As Object

Private Sub mnuBuscar:Click()

Dim acc As Access.Application
Set acc = New Access.Application

With acc
.OpenCurrentDatabase App.Path & "\ExportarExelLocal.accdb", False
.DoCmd.OpenReport "inf_Buscar", acViewPreview ' (nf_Buscar)nombre del informe
.CloseCurrentDatabase
.Quit
End With

Set acc = Nothing

End Sub
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
Imágen de perfil de Samuel
Val: 84
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Reporte Access 2010 o superior

Publicado por Samuel (27 intervenciones) el 29/08/2018 17:22:56
Hola, buenos días.

¿Estas totalmente seguró de que la base de datos esta bien?
es decir ¿que no tiene ninguntipo de problema con el nombre del origen de datos del informe?

Te recomiendo que le agreges una sola linea de codigo para ver que está haciendo access y ver si el problema no esta en la base de datos.

Solo tendrias que poner: acc.Visible=True

Espero que esto te de una idea de pueda estar pasando.

Saludos.
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
sin imagen de perfil
Val: 9
Ha disminuido su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Reporte Access 2010 o superior

Publicado por Ricardo (10 intervenciones) el 30/08/2018 14:36:57
ya lo solucione, el problema es que tenia estas 2 lineas en el codigo

.CloseCurrentDatabase
.Quit

abria y cerraba al toque, cerre la base al cerrar el informe y se solucionó....

gracias por el aporte, ahora estoy renegando con la ejecución de una macro que hice y no puedo ejecutarla desde vb6, si tenes alguna idea te lo agradecería

saludos
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
Imágen de perfil de Samuel
Val: 84
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Reporte Access 2010 o superior

Publicado por Samuel (27 intervenciones) el 30/08/2018 15:32:14
Pero a que tipo de macro te refieres?

Macro de datos.
Macro de incrustada.
Macro normal.
Macro de VBA.
???
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
sin imagen de perfil
Val: 9
Ha disminuido su posición en 3 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Reporte Access 2010 o superior

Publicado por Ricardo (10 intervenciones) el 30/08/2018 17:44:09
tengo una base access 2010 e hice una macro en acces la cual ejecuta una serie de consultas complejas las cuales corren mucho mas rapidas si las corre el motor de base de datos.
Por eso quiero dar la orden de ejecución desde mi aplicación de vb6, y no doy pie con bola,

el codigo que tengo es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
privte sub mnuEjecuta_Click()
 
dim Path as String
Path = "w:\bd.accdb"
Call Ejecuta_Macro_Access(Path, "MAcro1")
Ens Sub
 
Sub Ejecuta_Macro_Access(ByVal path_Bd As String, ByVal La_Macro As String)
 
On Error Goto Err_Sub
 
Dim Obj_Access As Access.Aplication
Set Obj_Access = New Access.Aplication
 
Obj_Access.OpenCurrenDatabase path_Bd
Obj_Access.DoCmd.RunMacro La_Macro, 1
DoEvent
 
Obj_Access.CloseCurrentDatabase
 
Set Obj_Access = Nothing
 
Exit Sub

si tenes alguna observación, escucho, graciasssss
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
Imágen de perfil de Samuel
Val: 84
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Reporte Access 2010 o superior

Publicado por Samuel (27 intervenciones) el 30/08/2018 19:21:36
Si la macro que vas a ejecutar es de VBA lo que tienes que hacer es lo siguiente:

Call Obj_Access.Run(Nombre de la función o sub, parametros...)

Esto va en vez de:

Obj_Access.RunMacro

Espero que te haya servido.
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