Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Por qué se puede generar reportes y exportar solo desde un pc y de los otro no?

Estas en el tema de Por qué se puede generar reportes y exportar solo desde un pc y de los otro no? en el foro de Visual Basic clásico en Foros del Web. Hola amigos nuevamente, necesito ayuda, consejos, opiniones, lo que sea para solucionar el problema que tengo. Como ya lo he expuesto en este foro, tengo ...
  #1 (permalink)  
Antiguo 03/09/2008, 11:24
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Pregunta Por qué se puede generar reportes y exportar solo desde un pc y de los otro no?

Hola amigos nuevamente, necesito ayuda, consejos, opiniones, lo que sea para solucionar el problema que tengo.
Como ya lo he expuesto en este foro, tengo un programa en vb6 con sql 2000, y corre bien en todos los pcs de la red pero solo en uno de los pcs cliente puede generar los reportes y exportar archivos a excel. A todo esto, los reportes se generan desde el servidor y el exportar se genera y manda a carpetas dentro del pc cliente.
en los demas pc aparece el sgte error:
Al exportar a excel:
"El programa.exe ha generado un error y debera cerrarse."
Luego se cierra.
Al generar reportes:
"physical database not found"
Y no lo genera.
Me dijeron que podía ser un problema de permisos de usuario de la bd dentro de la red, y para probar dejé todos los usuarios con los mismos permisos, pero aún así solo en uno se ejecutan bien los reportes y el exportar a excel y en los otros aparecen los errores ya mencionados.
Realmente ya no se que hacer, he intentado de todo, colocando la carpeta de reportes dentro del mismo pc, cambiando las rutas, etc. También creé las dsn dentro de cada pc para acceder a la bd, y sigue todo igual.
Realmente no entiendo por qué de un pc (notebook) funciona todo correctamente y de los otros no.
Bueno, cualquier ayuda bienvenida sea. Muchas gracias.
  #2 (permalink)  
Antiguo 03/09/2008, 13:29
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: Por qué se puede generar reportes y exportar solo desde un pc y de los otr

Como generas los reportes y como los exportas a excel??
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #3 (permalink)  
Antiguo 03/09/2008, 17:48
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Por qué se puede generar reportes y exportar solo desde un pc y de los otr

Hola!

¿Y es siempre el mismo equipo el que funciona? Quiero decir, ¿si sólo hay un equipo accediendo, sea el que sea, funciona?

Puedes hacer también que tu programa genere un fichero de log, abriendo un fichero de texto al iniciarlo y haciendo que guarde una línea antes de cada operación que realice, o que sospeches que puede dar problemas. De esa manera puedes orientarte mejor para saber dónde está el fallo.
__________________
wile sona li mute e sona
  #4 (permalink)  
Antiguo 04/09/2008, 12:03
 
Fecha de Ingreso: abril-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Por qué se puede generar reportes y exportar solo desde un pc y de los otr

Siempre funciona correctamente el mismo equipo que es un notebook y esta en la red, con funciona correctamente quiero decir ejecuta bien el programa y permite generar reportes y exportar unos formularios a excel, los otros pc de la red ejecutan bien el programa pero no permiten generar reportes y ni exportar a excel.
Me podrías indicar o dar el código para generar el fichero de log y abrir el fichero de texto para poder averiguar cual puede ser la causa del problema? por favor.
De antemano, muchas gracias.
  #5 (permalink)  
Antiguo 05/09/2008, 09:01
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Por qué se puede generar reportes y exportar solo desde un pc y de los otr

Te muestro la idea básica para un log. No es más que un fichero de texto en el que vas añadiendo líneas con los mensajes que te interesan.

Crea las variables globales en un módulo:

Código:
Public fs As Object
Public logFile as Object
En tu Sub Main, o en el primer sitio que te interese comenzar el log:

Código:
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set logFile = fs.CreateTextFile(<ruta y nombre donde quieras tu fichero de log>, True)
En cada lugar en el que quieras agregar una línea al log:

Código:
    Call logFile.WriteLine(format(time, "hh:mm:ss") & " <mensaje>")
    DoEvents
Te recomiendo que en el mensaje pongas siempre el nombre de la función en la que estás. Por ejemplo:

Código:
    Private Sub InicializarCosas(ByRef Parametro As Long)
        Call logFile.WriteLine(format(time, "hh:mm:ss") & " InicializarCosas - Entrada. Parámetros: " & Parametro)
        Call logFile.WriteLine(format(time, "hh:mm:ss") & " Apertura del recordset")

        noseque.open recordset y tal

        If <el recordset se ha abierto bien) Then
            Call logFile.WriteLine(format(time, "hh:mm:ss") & " El recordset ha sido abierto con éxito")
        Else
            Call logFile.WriteLine(format(time, "hh:mm:ss") & " Fallo al abrir el recordset")
            Call MsgBox("No ha funcionado =[ ")
            Exit Sub
        End If

        ' Aquí se hacen más cosas, que se informan en el log o no

        Call logFile.WriteLine(format(time, "hh:mm:ss") & " InicializarCosas - Salida")
    End Sub
Y en tu función de cierre del programa:

Código:
    Call logFile.Close
(asegúrate de que esta última se ejecuta, o puede que no se graben las últimas líneas).

Esto puedes complicarlo (o simplificarlo) tanto como quieras. Yo me construí un módulo de clase para ello y lo utilizo en la mayoría de mis "producciones"

El fichero resultante lo puedes abrir con el bloc de notas, ponle la extensión "txt" para ahorrarte trabajo

Y utiliza este método en los puntos de tu programa que sospeches que te están dando problemas. Puesto que estás escribiendo una cadena de texto, puedes concatenar cualquier cosa, desde el resultado de err.Description hasta la posición del ratón en la pantalla. Y ten cuidado con lo que escribes en el log, que hay usuarios muy listos y pueden sacar partido si guardas cosas como cadenas de conexión o nombres de usuarios. O bien elimina todas las líneas para escribir en el log, o programa alguna forma de desactivarlo.

Cuéntanos qué tal, ¡suerte!
__________________
wile sona li mute e sona
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:36.