Mensaje de error al mandar datos a un data report

Hola buenos días
Aquí sigo con lo del data report, estoy haciendo un reporte en el cual no estoy usando dataenviroment, estoy mandando al reporte los datos por medio de una New ADODB.Connection. El código que tengo es el siguiente.
Dim nfecha As String
nfecha = fecha1.Caption
citas_reporte.Open "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\base\citas.mdb", , "citas"
Set rs_citas = citas_reporte.Execute("select*from citas where fecha_cita = '" & nfecha & "'")
If rs_citas.EOF = False Then
Set Reporte_citas_diarias.DataSource = rs_citas
Reporte_citas_diarias.Show
End If
al mandarlo por primera ves si manda la informacion, pero cuando vuelvo a mandarlo me marca el error "la operacion no esta permitida si el objeto esta abierto", ya le intente poniendo  rs_citas.close, citas_reporte.close , rs_citas.ActiveConnection = Nothing y tambien set rs_citas.ActiveConnection = Nothing
pero nada funsiona
Gracias por tu atención

1 Respuesta

Respuesta
1
es que tenes que cerrar el reporte set reporte_citas_diario =nothing y cerrar el recorset
Hola hice lo que me comentaste pero por ejemplo
puse esto al final
Set Reporte_citas_diarias = Nothing
rs_citas.Close
Y me manda mensaje " la operación no esta permitida si el objeto esta cerrado
si pongo esto
Set Reporte_citas_diarias = Nothing
La primera ves si me manda información y me abre el reporte pero la segunda ves me manda el mensaje de que no puede realizarse si el objeto esta abierto.
Si es un listado común no tendrías ningún problema, pero si vos estas haciendo una carga de datos y lo imprimís ahí tienes el problema.
Listado común "buscar un producto o persona y imprimir" hace.
(  citas_reporte.Open "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\base\citas.mdb", , "citas" ) =colocalo en el form load
if rs_citas.state <> 0 then
   rs_citas.close
end if

Set rs_citas = citas_reporte.Execute("select*from citas where fecha_cita = '" & nfecha & "'")
If rs_citas.EOF = False Then
    Set Reporte_citas_diarias.DataSource = rs_citas
    Reporte_citas_diarias.Show
End If 
colocas el rs_citas. State para ver su valor si es <> 0 lo cerras y hacer de nuevo el recorset.
ya lo puse en el form load
citas_reporte.Open "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\base\citas.mdb", , "citas" )
Y jalo cava ves que pedía el reporte pero al cerrar el form y abrirlo de nuevo me mandaba el error así que le puse que cerrara la base de datos al momento de cerrar el form y funciono, muchas gracias por todo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas