|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - UserCode
Páginas: 1 ... 5 6 [7] 8 9 ... 15
151
« en: Domingo 21 de Enero de 2007, 16:20 »
Daggoth luego cuando tengas un tiempo libre, puedes probar el Crystal Report en el 3er CD del Visual Studio 6, tienes un Crystal Report creo que version 3 o 4 que puedes usar para hacer reportes y que te ayudaría a entrarle al Crystal de versiones actuales en el futuro el cual es el software por excelencia para el diseño de reportes ya que tarde o temprano el DataReport te quedara algo corto para algun tipo de gestion que se te presente hacer, eso si lo indico por experiencia y fue lo que me hizo usar ahora y siempre el Crystal Report para los reportes. Creo que en el 3er CD está en: \COMMON\Tools\VB\CrysRept\crystl32.exe En caso que no tengas al momento el 3er CD, porque lo prestaste o se te perdio, o etc y en caso de querer probarlo, cuadramos entonces para enviartelo por correo, FTP, etc la carpeta pesa como 5MB, y con eso te mando unas capturas de pantalla para referenciarte de como conectar el Crystal a la BD, a la tabla y poner los campos en el reporte, pero es tan facil que creo que hasta tu mismo curusiando lo harías, crystal es fácil al menos hablando mas que todo de hacer un reporte sencillo. Luego solo sería de incrustar en el Form el control de Crystal que está en Componentes del VB y unn par de líneas de código llamarian al reporte, buscar las DLL que se necesita para crystal y listo. PD: Tambien se pueden hacer reportes Crystal desde una interfaz en VB con otros controles que se seleccionan de Componentes, al menos yo los hago en el propio Crystal y ya luego solo los llamo desde VB, creo que así en caso de que en otros lenguajes se necesiten esos reportes, solo quedaria el llamarlos tambien y no estar tan sujetos nativamente a algun lenguaje, mas que solo a la BD desde luego. Si como dice Angel38 baja de la web de microsoft el SP6 no sé si ya haya otro, el SP6 pesa como 126MB o algo asi, pero actualiza muchas cosas en el VB como por ejemplo el que controles "data control" que no podian conectarse a BDs de X versiones (como Access por ejemplo) ahora si y para el DataReport creo que el SP6 trae algo que permite que el DataReport pueda ponerse la hoja Vertical y no Horizontal como siempre. Ese problema del DataReport lo hemos tenido todos, pero fueron otras cosas las que me hicieron dejar el DataReport, avisa si tienes el crystl32.exe o si la idea de probar hacer un reporte en crystal te sirve y le damos
152
« en: Sábado 20 de Enero de 2007, 01:38 »
Hola F_Tanori bueno, no sé si entendí bien, posiblemente no porque de haberlo entendido con el post de link, bueno creo que no hablamos de lo mismo o esa forma del post no es la idea que tenía en mente ¿o a qué te refieres?
bueno a algo asi como esto de aqui abajo Rs.Edit Rs("Campo")=Text Rs.Update Yo creo que como que tendré que dejarlo con el borrar y volver a agregar el registro, desde el punto de vista del usuario o de ejecución parece transparente el proceso.
153
« en: Viernes 19 de Enero de 2007, 19:27 »
Y sobre el otro punto, tengo una tablita en SQL Server, donde por dar un ejemplo, el campo Cedula es de 10 el cual es de tipo char, pero al ingressar desde VB un registro, si por ejemplo la cedula del registro es 12345678 debo agregar luego del 8 "dos espacios" para dar con el registro en la busqueda, el campo nombre es de 20, si ingreso un nombre menor a esa longitud, al buscar por nombre debo llenar con "espacios" lo faltante hasta completar los 20 de longitud del campo de la tabla.
¿porqué pasa esto con los campos de las tablas en SQL Server? blink.gif
Pasa porque el Tipo de Dato declarado para los campos era char pero al cambiarlos a varchar ya solucionado el problema, que cosas ¿cómo editas tus registros con ADO?
Buena pregunta porque aun no veo como hace esto ADO
154
« en: Martes 16 de Enero de 2007, 18:18 »
Hola Daggoth Daggoth claro que todos tus programas siempre funcionaran en tu PC e incluso en la de tu amigo porque tienen el lenguaje instalado, recuerda que al instalar el VS éste pondra en el system32 de tu windows un sin fin de DLLs y OCXs que cualquier programa que hagas (dependiendo del control usado en tus ventanas y demas etc) llamara, buscara esos archivos que necesita para "dibujar" el objeto en la ventana y "ejecutar" todos sus eventos y demas procedimientos gracias a esas DLL y/ó OCX. Tienes que empaquetar bien tu programa (el instalador) usa el Asistente de Empaquetado y Distribucion del Visual Studio, pero esté empaquetador del VS es algo inestable, te lo digo por experiencia, es mejor usar otros como Setup Factory o el Inno Setup, yo uso este ultimo, hago el instalador a pie, pero esto hace que alguna falla en el instalador sea casí nula. Yo uso el Empaquetador del VS solo para saber las dependencias del programa, es decir, qué DLLs y OCX necesita el programa para funcionar, no es solo hacer el ejecutable el cual debe hacerse tambien. Luego de saber qué archivos necesita y depende el programa para funcionar, los busco y los meto en una subcarpeta del programa, la mayoria van a la carpeta de sistema del windows. La DLL de DAO o ADO deben registrarse en el registro de windows ya que aunque esten colocadas, no funcionaran. Y tambien (en mi caso) uso el Virtual PC de Microsoft donde tengo instalado en una PC virtual un Windows Virgen, donde pruebo el instalador hecho y evaluar si en el proceso de instalación se produce algun error, o si luego de la instalación, evaluar si en la ejecución del programa y sus tareas se llega a producir algun error, esto abarca tanto avisos de error, como el que se llame a un procedimiento o ejecución de algo que al hacerlo, no se active, como por ejemplo, llamar a un reporte o alguna consulta de datos y ver que no sucede nada, casi siempre todo esto es debido a la falta de algun archivo que el programa necesita para saber lo que se le está pidiendo hacer, lo cual es tu caso y es el pan de cada día en todo esto. En resumen es eso, tu programa al cargarse a memoria busca en la carpeta de sistema (del sistema) los archivos que necesita para funcionar, y al no conseguirlos produce sus respectivas fallas, en tu equipo esto nunca sucedera porque el Visual Studio colocó en tu PC todo el montoneron de librerias que coloca para funcionar y para que funcione todo control y referencias con e o lasl que desees trabajar.
155
« en: Lunes 15 de Enero de 2007, 23:27 »
Hola nuevamente Me parece muy interesante ver que ADO tiene una forma distinta de Editar, que de tenerla, al menos es algo que desconozco ya que he probado con .EditMode = dbEditInProgress pues sin buenos resultados de edición con ADO recurro a SQL o incluso a algo como borrar el registro y volverlo a guardar, de haber fecha que mantener, la coloco en una variable para volver a colocar la misma fecha, pero esto ultimo pondría el registro "supuestamente editado" de ultimo en la tabla por ser el ultimo ingresado (porque no se edito sino que se borro y se volvio a meter en la tabla). A lo cual pregunto ¿cómo editas tus registros con ADO? Y sobre el otro punto, tengo una tablita en SQL Server, donde por dar un ejemplo, el campo Cedula es de 10 el cual es de tipo char, pero al ingressar desde VB un registro, si por ejemplo la cedula del registro es 12345678 debo agregar luego del 8 "dos espacios" para dar con el registro en la busqueda, el campo nombre es de 20, si ingreso un nombre menor a esa longitud, al buscar por nombre debo llenar con "espacios" lo faltante hasta completar los 20 de longitud del campo de la tabla. ¿porqué pasa esto con los campos de las tablas en SQL Server? PD: El buscador está funcionando? porque cualquier cosa a buscar siempre me arroja que no ha encontrado nada, no importa lo que le indique a buscar Saludos a todos y bienvenido sea cualquier experiencia a contar sobre estas situaciones
156
« en: Jueves 4 de Enero de 2007, 18:30 »
Bueno, probando con la misma SQL y tambien con alguna otra ideao que a uno le viene a la mente, y viene cuando quiere y el día que quiera, pues, en vez de la SQL, pues con código nativo propio del VB colocando las condiciones del WHERE de la SQL en un IF quedando entonces o reemplazando la SQL por esto: If RsServicio.RecordCount > 0 Then RsServicio.MoveFirst While Not RsServicio.EOF If RsServicio("TipoServicio") = 1 And RsServicio("Fecha") < DTPFecha.Value And _ RsServicio("CodRegion") = RsConfig("CodRegion") And RsServicio("IDSucursal") = SUCURSAL Then RsServicio.Delete End If RsServicio.MoveNext Wend End If
En todo caso, si alguien sabe como resolver problemas de SQL como las expuestas, por favor, aviseme
157
« en: Jueves 4 de Enero de 2007, 00:48 »
bueno, se me paso que tambien puse en las SQL lo de DELETE NombreTabla.* en el caso de cuando tenian Alias las tablas era DELETE A.* From 1raTabla As A, 2daTabla as B Con solo el * ahí si que la SQL como que no sabe qué registros de cuál de las dos tablas desea uno que borre, pero aun colocando lo anteriormente escrito, no funciona, saca el error de Error de sintaxis en la cláusula FromPero mi problema es que en el WHERE se valida un dato de la tabla con el campo de otra Tabla, porque si es cierto que si la SQL estuviese compuesta de una sola Tabla, si funcionaría, pero e ahí el problema. Si para una sola tabla Delete * From Tabla Where Campo = codicion Cómo sería para una SQL que relaciona más de una tabla ¿? Ya que ni con Delete A.* From Tabla1 As A, Tabla2 As B Where A.Campo1 = B.Campo1
158
« en: Miércoles 3 de Enero de 2007, 22:21 »
Feliz Año Nuevo para toda la comunidad, que todos sus deseos, proyecciones o planes para este nuevo año se cumplan sin contratiempo alguno. Disuclpas por este post, ya que si debe de haber temas de esto en el foro, pero no sé, tal vez el buscador no permite string SQLs ya que SQL Delete From es lo que puse en el buscar para ver post con eso, pero el buscador me produce error, incluso buscando luego con SQL borrar base de datos, no sé si le esten haciando algun mantenimiento a la web, aviso: Disculpa, ocurrió un error. Si no estás seguro de cómo utilizar alguna característica, o no sabes por qué has obtenido este mensaje de error, prueba a mirar en los archivos de ayuda para más información.
El error devuelto fue:
Disculpa, pero no se ha encontrado coincidencia alguna
Tengo en una ventanita llamada Configuración, relacionada a un programita, una sección que es de hacer respaldo de la BD y borra sus tablas luego de ello. Guardar un backup y comenzar con la BD en blanco, un screenshot a mostrar de esa ventanita: Pero las SQLs para borrar las tablas me estan dando error y no sé bien a qué es debido ya que al menos viendo esta web, pareciese servir como lo he puesto, pero no es así. Bueno este es el código, yo lo veo bien, pero funciona mal If MsgBox("ESTA A PUNTO DE REALIZAR UNA OPERACION DELICADA PARA EL SISTEMA" & vbCrLf & vbCrLf & _ "UNA VEZ QUE BORRE LOS REGISTROS, ESTOS NO PODRAN SER RECUPERADOS" & vbCrLf & _ "SE RECOMIENDA HACER UN RESPALDO DE LA BASE DE DATOS ANTES DE PROCEDER CON ESTA OPERACION" & vbCrLf & vbCrLf & _ "¿CONFIRMA QUE DESEA BORRAR LOS REGISTROS DE LAS GESTIONES SELECCIONADAS?", vbQuestion + vbYesNo, "CONFIRMANDO") = vbYes Then 'Todos: If ChkMasivos.Value = 1 And ChkContratados.Value = 1 And ChkServiciosInt.Value = 1 And _ ChkCuentasEspeciales.Value = 1 And ChkSiniestros.Value = 1 And ChkDistMasivaGestOp.Value = 1 And ChkDistMasivaGestCalidad.Value = 1 Then 'Masivos, Contratados y Serv.Int: BD.Execute "DELETE TR_SERVICIO.* FROM TR_SERVICIO, TB_CONFIG " & _ "WHERE TR_SERVICIO.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SERVICIO.CodRegion=TB_CONFIG.CodRegion AND TR_SERVICIO.IDSucursal='" & SUCURSAL & "'" 'Dist.Masiva GestOp: BD.Execute "DELETE DISTMASIVA_GESTOP.* FROM DISTMASIVA_GESTOP, TB_CONFIG " & _ "AND DISTMASIVA_GESTOP.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTOP.CodRegion=TB_CONFIG.CodRegion AND DISTMASIVA_GESTOP.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.* FROM DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION, TB_CONFIG " & _ "AND DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.CodRegion=TB_CONFIG.CodRegion AND DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.IDSucursal='" & SUCURSAL & "'" 'Dist.Masiva GestCalidad: BD.Execute "DELETE DISTMASIVA_GESTCALIDAD.* FROM DISTMASIVA_GESTCALIDAD, TB_CONFIG " & _ "AND DISTMASIVA_GESTCALIDAD.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTCALIDAD.CodRegion=B.CodRegion AND DISTMASIVA_GESTCALIDAD.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE DISTMASIVA_GESTCALIDAD_DETALLE.* FROM DISTMASIVA_GESTCALIDAD_DETALLE, TB_CONFIG " & _ "AND DISTMASIVA_GESTCALIDAD_DETALLE.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTCALIDAD_DETALLE.CodRegion=TB_CONFIG.CodRegion AND DISTMASIVA_GESTCALIDAD_DETALLE.IDSucursal='" & SUCURSAL & "'" 'Cuent Esp: BD.Execute "DELETE CUENTESP_CTRL_SOBRETIEMPO.* FROM CUENTESP_CTRL_SOBRETIEMPO AS A, TB_CONFIG " & _ "AND Fecha<" & DTPFecha.Value & " " & _ "AND CUENTESP_CTRL_SOBRETIEMPO.CodRegion=TB_CONFIG.CodRegion AND CUENTESP_CTRL_SOBRETIEMPO.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE CUENTESP_SERVESP.* FROM CUENTESP_SERVESP, TB_CONFIG " & _ "AND CUENTESP_SERVESP.Fecha<" & DTPFecha.Value & " " & _ "AND CUENTESP_SERVESP.CodRegion=TB_CONFIG.CodRegion AND CUENTESP_SERVESP.IDSucursal='" & SUCURSAL & "'" 'Siniestros: BD.Execute "DELETE TR_SINIESTROS_ENVASES.* FROM TR_SINIESTROS_ENVASES, TB_CONFIG " & _ "AND TR_SINIESTROS_ENVASES.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SINIESTROS_ENVASES.CodRegion=TB_CONFIG.CodRegion AND TR_SINIESTROS_ENVASES.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_SINIESTROS_ENVASES_DETALLE.* FROM TR_SINIESTROS_ENVASES_DETALLE, TB_CONFIG " & _ "AND TR_SINIESTROS_ENVASES_DETALLE.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SINIESTROS_ENVASES_DETALLE.CodRegion=TB_CONFIG.CodRegion AND TR_SINIESTROS_ENVASES_DETALLE.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_SINIESTROS_VEHICULOS.* FROM TR_SINIESTROS_VEHICULOS, TB_CONFIG " & _ "AND TR_SINIESTROS_VEHICULOS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SINIESTROS_VEHICULOS.CodRegion=TB_CONFIG.CodRegion AND TR_SINIESTROS_VEHICULOS.IDSucursal='" & SUCURSAL & "'" 'Gastos SGV: BD.Execute "DELETE TR_GASTOS.* FROM TR_GASTOS, TB_CONFIG " & _ "AND TR_GASTOS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_GASTOS.CodRegion=TB_CONFIG.CodRegion AND TR_GASTOS.TxtSucursal='" & SUCURSAL & "'" 'Mant SGV: BD.Execute "DELETE TR_BATERIAS.* FROM TR_BATERIAS, TB_CONFIG AS B " & _ "AND TR_BATERIAS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_BATERIAS.CodRegion=TB_CONFIG.CodRegion AND TR_BATERIAS.TxtSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_CAUCHOS.* FROM TR_CAUCHOS, TB_CONFIG " & _ "AND TR_CAUCHOS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_CAUCHOS.CodRegion=TB_CONFIG.CodRegion AND TR_CAUCHOS.TxtSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_SERV_BIMENSUAL_MANT_PREVENTIVO.* FROM TR_SERV_BIMENSUAL_MANT_PREVENTIVO, TB_CONFIG " & _ "AND TR_SERV_BIMENSUAL_MANT_PREVENTIVO.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SERV_BIMENSUAL_MANT_PREVENTIVO.CodRegion=TB_CONFIG.CodRegion AND TR_SERV_BIMENSUAL_MANT_PREVENTIVO.TxtSucursal='" & SUCURSAL & "'" 'Inventario SGV: BD.Execute "DELETE TR_CTRL_VEHIC_KM.* FROM TR_CTRL_VEHIC_KM, TB_CONFIG " & _ "AND TR_CTRL_VEHIC_KM.Fecha<" & DTPFecha.Value & " " & _ "AND TR_CTRL_VEHIC_KM.CodRegion=TB_CONFIG.CodRegion AND TR_CTRL_VEHIC_KM.TxtSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_UNID_PARALIZADAS.* FROM TR_UNID_PARALIZADAS, TB_CONFIG " & _ "AND TR_UNID_PARALIZADAS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_UNID_PARALIZADAS.CodRegion=TB_CONFIG.CodRegion AND TR_UNID_PARALIZADAS.TxtSucursal='" & SUCURSAL & "'" End If 'Individual: If ChkMasivos.Value = 1 Then BD.Execute "DELETE TR_SERVICIO.* FROM TR_SERVICIO AS A, TB_CONFIG " & _ "WHERE TR_SERVICIO.TipoServicio=1 AND TR_SERVICIO.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SERVICIO.CodRegion=TB_CONFIG.CodRegion AND TR_SERVICIO.IDSucursal='" & SUCURSAL & "'" End If If ChkContratados.Value = 1 Then BD.Execute "DELETE TR_SERVICIO.* FROM TR_SERVICIO, TB_CONFIG " & _ "WHERE TR_SERVICIO.TipoServicio=2 AND TR_SERVICIO.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SERVICIO.CodRegion=TB_CONFIG.CodRegion AND TR_SERVICIO.IDSucursal='" & SUCURSAL & "'" End If If ChkServiciosInt.Value = 1 Then BD.Execute "DELETE TR_SERVICIO.* FROM TR_SERVICIO, TB_CONFIG " & _ "WHERE TR_SERVICIO.TipoServicio=3 AND TR_SERVICIO.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SERVICIO.CodRegion=TB_CONFIG.CodRegion AND TR_SERVICIO.IDSucursal='" & SUCURSAL & "'" End If If ChkDistMasivaGestOp.Value = 1 Then BD.Execute "DELETE DISTMASIVA_GESTOP.* FROM DISTMASIVA_GESTOP, TB_CONFIG " & _ "AND DISTMASIVA_GESTOP.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTOP.CodRegion=TB_CONFIG.CodRegion AND DISTMASIVA_GESTOP.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.* FROM DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION, TB_CONFIG " & _ "AND DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTOP_MOTIVO_DEVOLUCION.CodRegion=TB_CONFIG.CodRegion AND A.IDSucursal='" & SUCURSAL & "'" End If If ChkDistMasivaGestCalidad.Value = 1 Then BD.Execute "DELETE DISTMASIVA_GESTCALIDAD.* FROM DISTMASIVA_GESTCALIDAD, TB_CONFIG " & _ "AND DISTMASIVA_GESTCALIDAD.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTCALIDAD.CodRegion=TB_CONFIG.CodRegion AND A.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE DISTMASIVA_GESTCALIDAD_DETALLE.* FROM DISTMASIVA_GESTCALIDAD_DETALLE, TB_CONFIG " & _ "AND DISTMASIVA_GESTCALIDAD_DETALLE.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTCALIDAD_DETALLE.CodRegion=TB_CONFIG.CodRegion AND DISTMASIVA_GESTCALIDAD_DETALLE.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE DISTMASIVA_GESTCALIDAD_FORMULAS.* FROM DISTMASIVA_GESTCALIDAD_FORMULAS, TB_CONFIG " & _ "AND DISTMASIVA_GESTCALIDAD_FORMULAS.Fecha<" & DTPFecha.Value & " " & _ "AND DISTMASIVA_GESTCALIDAD_FORMULAS.CodRegion=TB_CONFIG.CodRegion AND DISTMASIVA_GESTCALIDAD_FORMULAS.IDSucursal='" & SUCURSAL & "'" End If If ChkCuentasEspeciales.Value = 1 Then BD.Execute "DELETE CUENTESP_CTRL_SOBRETIEMPO.* FROM CUENTESP_CTRL_SOBRETIEMPO, TB_CONFIG " & _ "AND CUENTESP_CTRL_SOBRETIEMPO.Fecha<" & DTPFecha.Value & " " & _ "AND CUENTESP_CTRL_SOBRETIEMPO.CodRegion=TB_CONFIG.CodRegion AND CUENTESP_CTRL_SOBRETIEMPO.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE CUENTESP_SERVESP.* FROM CUENTESP_SERVESP, TB_CONFIG " & _ "AND CUENTESP_SERVESP.Fecha<" & DTPFecha.Value & " " & _ "AND CUENTESP_SERVESP.CodRegion=TB_CONFIG.CodRegion AND CUENTESP_SERVESP.IDSucursal='" & SUCURSAL & "'" End If If ChkSiniestros.Value = 1 Then BD.Execute "DELETE TR_SINIESTROS_ENVASES.* FROM TR_SINIESTROS_ENVASES, TB_CONFIG " & _ "AND TR_SINIESTROS_ENVASES.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SINIESTROS_ENVASES.CodRegion=TB_CONFIG.CodRegion AND TR_SINIESTROS_ENVASES.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_SINIESTROS_ENVASES_DETALLE.* FROM TR_SINIESTROS_ENVASES_DETALLE, TB_CONFIG " & _ "AND TR_SINIESTROS_ENVASES_DETALLE.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SINIESTROS_ENVASES_DETALLE.CodRegion=TB_CONFIG.CodRegion AND TR_SINIESTROS_ENVASES_DETALLE.IDSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_SINIESTROS_VEHICULOS.* FROM TR_SINIESTROS_VEHICULOS, TB_CONFIG " & _ "AND TR_SINIESTROS_VEHICULOS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SINIESTROS_VEHICULOS.CodRegion=TB_CONFIG.CodRegion AND TR_SINIESTROS_VEHICULOS.IDSucursal='" & SUCURSAL & "'" End If 'SGV: If ChkGastosSGV.Value = 1 Then BD.Execute "DELETE TR_GASTOS.* FROM TR_GASTOS, TB_CONFIG " & _ "AND TR_GASTOS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_GASTOS.CodRegion=TB_CONFIG.CodRegion AND TR_GASTOS.TxtSucursal='" & SUCURSAL & "'" End If If ChkMantSGV.Value = 1 Then BD.Execute "DELETE A.* FROM TR_BATERIAS, TB_CONFIG " & _ "AND TR_BATERIAS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_BATERIAS.CodRegion=TB_CONFIG.CodRegion AND TR_BATERIAS.TxtSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_CAUCHOS.* FROM TR_CAUCHOS, TB_CONFIG " & _ "AND TR_CAUCHOS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_CAUCHOS.CodRegion=TB_CONFIG.CodRegion AND TR_CAUCHOS.TxtSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_SERV_BIMENSUAL_MANT_PREVENTIVO.* FROM TR_SERV_BIMENSUAL_MANT_PREVENTIVO, TB_CONFIG " & _ "AND TR_SERV_BIMENSUAL_MANT_PREVENTIVO.Fecha<" & DTPFecha.Value & " " & _ "AND TR_SERV_BIMENSUAL_MANT_PREVENTIVO.CodRegion=TB_CONFIG.CodRegion AND TR_SERV_BIMENSUAL_MANT_PREVENTIVO.TxtSucursal='" & SUCURSAL & "'" End If If ChkInventarioSGV.Value = 1 Then BD.Execute "DELETE TR_CTRL_VEHIC_KM.* FROM TR_CTRL_VEHIC_KM, TB_CONFIG " & _ "AND TR_CTRL_VEHIC_KM.Fecha<" & DTPFecha.Value & " " & _ "AND TR_CTRL_VEHIC_KM.CodRegion=TB_CONFIG.CodRegion AND TR_CTRL_VEHIC_KM.TxtSucursal='" & SUCURSAL & "'" BD.Execute "DELETE TR_UNID_PARALIZADAS.* FROM TR_UNID_PARALIZADAS, TB_CONFIG " & _ "AND TR_UNID_PARALIZADAS.Fecha<" & DTPFecha.Value & " " & _ "AND TR_UNID_PARALIZADAS.CodRegion=TB_CONFIG.CodRegion AND TR_UNID_PARALIZADAS.TxtSucursal='" & SUCURSAL & "'" End If Else Exit Sub End If
Si tenían Alias las tablas FROM Tabla As A, TB_CONFIG As B y todo era WHERE A.Campo = B.Campo AND A.Fecha < variable Pero aun sabiendo que sería igual o lo mismo, quise ver si tal vez los Alias daban algun problema por lo que los quite, pero claro que con tablas con nombres largos, habian Alias que volvere a poner. Alguna observación sobre esto a comentar ¿?
159
« en: Lunes 11 de Diciembre de 2006, 14:32 »
dicho y hecho, eso mismo voy a hacer
160
« en: Lunes 11 de Diciembre de 2006, 01:30 »
uhmmm entonces como que mejor le pongo al programa de esta bd algo en donde periodicamente se compacte la bd para que el usuario lo haga o que automáticamente lo haga el programa cada cierto tiempo, y tambien el que se puedan borrar archivos muuuuy viejos ya existentes, pero de esto ultimo no estoy muy seguro, no sea que siempre se necesiten todos los archivos sin importar su antiguo ingreso, algo asi como un historial, tal vez copiando la bd en un backup y luego borron y cuenta nueva
161
« en: Domingo 10 de Diciembre de 2006, 23:39 »
lo acabo de hacer porque estaba grande o embasurada?
162
« en: Domingo 10 de Diciembre de 2006, 19:46 »
ya lo solucione, siempre se sabe que en esto hay que esperar que la materia gris le de la inspiracion cuando quiere y no cuando uno quiere, y bien sencillito que fue, no sé si drastico pero si funciona, pos pa mi esta bien. Pues la SQL con el problema, la cual es esta: SELECT A.Asunto AS ASUNTO, COUNT(A.Asunto) AS N_DE_REGISTROS, SUM(A.Cant) AS CANT
FROM DISTMASIVA_GESTCALIDAD_DETALLE AS A, TB_REPORTE AS REP
WHERE A.CodRegion = REP.CodRegion And A.IDSucursal = REP.IDSucursal And (A.Asunto="Sobres Entregados" Or A.Asunto="Sobres Devueltos" Or A.Asunto="Entregas Verificadas" Or A.Asunto="Entregas Realizadas Correctamente" Or A.Asunto="Mala Atencion - Queja del Cliente" Or A.Asunto="No Identifico al Destinatario" Or A.Asunto="Entrego Sobre Abierto y sin Cubierta Plastica" Or A.Asunto="Acuse de Recibido llenado por el Distribuidor" Or A.Asunto="Devoluciones Verificadas" Or A.Asunto="A" Or A.Asunto="B" Or A.Asunto="C" Or A.Asunto="D" Or A.Asunto="E" Or A.Asunto="F") And A.TipoGestion=2 And A.Fecha>=REP.Fecha1 And A.Fecha<=REP.Fecha2
GROUP BY A.Asunto;
Sencillamente la divide en dos SQLs La primera: SELECT A.Asunto AS ASUNTO, COUNT(A.Asunto) AS N_DE_REGISTROS, SUM(A.Cant) AS CANT
FROM DISTMASIVA_GESTCALIDAD_DETALLE AS A, TB_REPORTE AS REP
WHERE A.CodRegion = REP.CodRegion And A.IDSucursal = REP.IDSucursal And (A.Asunto="Sobres Entregados" Or A.Asunto="Sobres Devueltos" Or A.Asunto="Entregas Verificadas" Or A.Asunto="Entregas Realizadas Correctamente" Or A.Asunto="Mala Atencion - Queja del Cliente" Or A.Asunto="No Identifico al Destinatario" Or A.Asunto="Entrego Sobre Abierto y sin Cubierta Plastica" Or A.Asunto="Acuse de Recibido llenado por el Distribuidor" Or A.Asunto="Devoluciones Verificadas") And A.TipoGestion=2 And A.Fecha>=REP.Fecha1 And A.Fecha<=REP.Fecha2
GROUP BY A.Asunto;
Y la segunda: SELECT A.Asunto AS ASUNTO, COUNT(A.Asunto) AS N_DE_REGISTROS, SUM(A.Cant) AS CANT
FROM DISTMASIVA_GESTCALIDAD_DETALLE AS A, TB_REPORTE AS REP
WHERE A.CodRegion = REP.CodRegion And A.IDSucursal = REP.IDSucursal And (A.Asunto="A" Or A.Asunto="B" Or A.Asunto="C" Or A.Asunto="D" Or A.Asunto="E" Or A.Asunto="F") And A.TipoGestion=2 And A.Fecha>=REP.Fecha1 And A.Fecha<=REP.Fecha2
GROUP BY A.Asunto;
Estas son para unos reportes, pero imaginense, los reportes quedaban así: (notar la parte o sección que dice Auditoria de Calidad) http://img299.imageshack.us/img299/9392/re...stcalidavi0.jpgAhora quedan asi: (notar la parte o sección que dice Auditoria de Calidad) http://img292.imageshack.us/img292/9449/re...stcalidagy2.jpgmejor tarde que nunca verdad
163
« en: Sábado 9 de Diciembre de 2006, 23:46 »
la bd pesa casi 3MB y en una bd en blanco para ver si podía al menos importar esas dos tablas pues, me comio el access en eso lo que si puedo improvisar por ahora ya es el poner en escrito como son estas tablas, voy... DISTMASIVA_GESTCALIDAD CodRegion (Numerico Simple) IDSucursal (Texto 5) Fecha (Fecha corta) ID (Numero simple) DISTMASIVA_GESTCALIDAD_DETALLE ID (Numero Simple) Asunto (Texto 50) Cant (numero entero largo) CodRegion (numero simple) IDSucursal (texto 5) Fecha (fecha corta) TipoGestion (numero simple) Bueno esas son las dos tablas entonces tal vez a pie pueda metersele datos, asi como por ejemplo el link del screenshot que puse (porque una imagen vale más que mil palabras ) y la SQL también ya está puesta en el primer post. bueno voy a cruzar los dedos, al menos yo ya llevo bastante tiempo sentado frente al pc, ya al pararme suena como cuando se despega una calcomania todo pegajoso LOL! sino, le sigo mañana o si logran algo me avisan bueno
164
« en: Sábado 9 de Diciembre de 2006, 21:40 »
porque el ingreso de estos datos los trabaje por Matriz en VB porque eran muchos datos y no queria hacer tantos campos de tabla como Asunto o Motivo, asi que en un Campo llamado "Asunto" meto el Label(i).Caption y en otro campo el Text(i).Text el valor numerico. y lo comento ilustrandolo con la siguiente imagen http://img292.imageshack.us/img292/4638/tablasgr6.jpgDesde los ID=3 hasta todos los ID=4 son los datos que trata esta SQL, porque los que dicen ID=1 y los ID=2 son otros datos, otro tipo de gestion (TipoGestion=1). Entonces si cuento no sirve porque por ejemplo, contemos los ID=3 (hay 15) y de los ID=4 tambien hay 15) siempre serán 15 para ese tipo de ingreso, si yo cuento hasta el ultimo ID=3, ¿cómo hago para que el contador, vuelva a contar desde 0 al empezar los ID=4 en una SQL? La tabla pequeña es como la general y de datos básicos y de control, y la otra, la más grande son el detalle de esos ingresos, en VB funciona fino este tipo de proceso, y en Crystal pues exceptuando el problema del orden, tambien funciona todo bien, tanto camino recorrido sin problemas y andando todo bien para caer en este pequeño pero importante detalle del orden PD: la relacion que hay entre ambas tablas es de "1 a Muchos" tabla izquierda la pequeña y tabla derecha la de detalles, eso con respecto al ID que si es único en la tabla pequeña.
165
« en: Sábado 9 de Diciembre de 2006, 19:59 »
si tengo que pensar en otra porque ahora que lo veo, el contador tampoco me sirve ojala exista algo en sql que permita ordenar por longitud de string o algo asi porque sino, pues tendre que aprender a hacer hasta magia hehehe
166
« en: Sábado 9 de Diciembre de 2006, 19:35 »
Tampoco puedo porque CodRegion e IDSucursal son iguales tambien, porque el programa que conecta a esta BD debe gestionar distintas regiones del país y el campo IDSucursal es un abreviativo de la Sucursal Ejemplo: REGION CodRegion Capital 1 Centro 2 Oriente 3 Occidente 4 Zulia-Occidente 5
Cada Region tiene 8 o más Sucursales, en cada ciudad o más de una en una ciudad Entonces si el programa que trabaja con esta BD y sus SQL se usa en, una region, siempre sería bajo esa Sucursal Ejemplo: IDSucursal = MBO IDSucursal = MDA IDSucursal = COJ Son abreviaciones de la Ciudad en donde está la Sucursal u Oficina. Entonces todos estos registros que se trae la SQL son de la misma region, y de la misma oficina, es decir, todos los registros tienen CodRegion=5 y IDSucursal=MBO Esto está así porque en una misma Tabla se meten los registros de todas las sucursales de cada region, y por SQLs y código se filtra la información por parámetros, o lo que yo llamaría, campos que ayudan a identificar a qué Region y a qué Sucursal pertenece cada Registro, además de su ID único, claro. No me servia hacer Tablas pr Sucursal o por Region porque las Sucursales son algo que se Eliminan o se Crean nuevas, y las Regiones, bueno siempre son y seguirán las de siempre. ¿será que le agrego un campo más a la tabla, pero que sea un campo contador? tal vez podría servir porque no hay datos únicos entre registros que permitan ordenarlo
167
« en: Sábado 9 de Diciembre de 2006, 17:55 »
hola buenas a todos y todas No sé si se le ha presentado el caso a alguien pero tengo una SQL que me trae unos datos sin problemas, pero me los trae en orden alfabetico y necesito que sea por orden de ingreso, validarlo por campo Fecha no sirve ya que puede ser 10 o 20 registros por la misma fecha, y la tabla No tiene campo ID único. Esta es la SQL: SELECT A.Asunto AS ASUNTO, COUNT(A.Asunto) AS N_DE_REGISTROS, SUM(A.Cant) AS CANT FROM DISTMASIVA_GESTCALIDAD_DETALLE AS A, TB_REPORTE AS REP WHERE A.CodRegion = REP.CodRegion And A.IDSucursal = REP.IDSucursal And (A.Asunto="Sobres Entregados" Or A.Asunto="Sobres Devueltos" Or A.Asunto="Entregas Verificadas" Or A.Asunto="Entregas Realizadas Correctamente" Or A.Asunto="Mala Atencion - Queja del Cliente" Or A.Asunto="No Identifico al Destinatario" Or A.Asunto="Entrego Sobre Abierto y sin Cubierta Plastica" Or A.Asunto="Acuse de Recibido llenado por el Distribuidor" Or A.Asunto="Devoluciones Verificadas" Or A.Asunto="A" Or A.Asunto="B" Or A.Asunto="C" Or A.Asunto="D" Or A.Asunto="E" Or A.Asunto="F") And A.TipoGestion=2 And A.Fecha>=REP.Fecha1 And A.Fecha<=REP.Fecha2 GROUP BY A.Asunto;
Quise ver si podía quitar o cambiar el GROUP BY A.Asunto por uno de Fecha pero igual debe estar el campo Asunto para que la estructura de la SQL funcione, ya que es el campo protagonico en esto, pero el orden como trae los datos no me sirve. El ingreso es este: Sobres Entregados Sobres Devueltos Entregas Verificadas Entregas Realizadas Correctamente Mala Atencion - Queja del Cliente No Identifico al Destinatario Entrego Sobre Abierto y sin Cubierta Plastica Acuse de Recibo llenado por el Distribuidor Devoluciones Verificadas A B C D E F
Pero la SQL me los trae asi: A B C D Devoluciones Verificadas E Entregas Realizadas Correctamente Entrego Sobre Abierto y sin Cubierta Plastica F Mala Atencion - Queja del Cliente No Identifico al Destinatario Sobres Devueltos Sobres Entregados
Simpre he usado SQLs sencillas y cortas y es hora que llevo un corto tiempo haciendo SQLs algo más relacionales y no sé si exista alguna clausula o indicación en sentencias SQL que permita corregir esto, lo que he buscado y leido hasta el momento no me ha direccionado a la solución buscada.
168
« en: Viernes 24 de Noviembre de 2006, 18:10 »
Hola! Pues la funcion que yo conozco en vb que mide la longitud, sea variable o objeto en un form es Len Ejemplo: If Len(TextBox1.Text)>8 Then MsgBox "Disculpe, pero ha excedido la longitud máxima permitda de ingreso", vbInformation, "Longitud Excedida" Exit Sub End If resto del codigo en caso de no ser >8 sea guardar datos, etc con respecto a algun campo ID. Tambien está otro que es Mid(string, number, number) que indicandole tomaría de un string solo X caracteres o algo así, perdon por dar una info vaga del mid es que lo he usado poco y no recuerdo ahorita como le va lo suyo El Mid yo lo use en una ocasion para tomar el titulo de una ventana, pero solo parte de su titulo, es decir, suponiendo que el titulo de la ventana sea: Empresa Oficina [ABC] pues yo guardaba del todo el string solo el ABC asi: Mid(Form1.Caption, 18, 3) cuenta de derecha a izquierda y al llegar al caracter 18 toma los 3 caracteres, descartando el resto. Con el Mid uno le indica que quiero tomar en una variable, por ejemplo, solo el caracter 4 al 6 de una cadena, y se le dice comenzar desde la izquierda o desde la derecha para tomar esos caracteres y descargar el resto de los demas caracteres. Bueno tal vez es el Len el que necesitas bueno eso espero PD: yo tampoco nunca he tenido la ayuda del vb, por eso siempre he dicho que los que tenemos una pc con internet debemos estar muy agradecidos de ello
169
« en: Jueves 23 de Noviembre de 2006, 18:51 »
oye al parecer entonces que el porcentaje mayor del problema apunta a que es tu sistema, deberias buscar en internet algun programa que limpie y desembasure tu registro de windows, tal vez usar software como el Tunne Utility o algun otro, desintalar programas que aun tengas y que en la actualidad no uses durante ya un tiempo, abrir el administrador y sacar de memoria programas que se cargan al iniciar el sistema, en caso de algun conflicto de archivos dll y volver a ejecutar el setup del VS, desactualización del windows no debe ser ya que a mi parecer tienes conexion a internet, la peor solucion y nada gustosa a tomar seria reinstalar (tal vez formatear disco) tu windows.
170
« en: Jueves 23 de Noviembre de 2006, 00:59 »
El porque quiero hacerlo asi es por varios motivos, entre ellos el que siempre que uso este metodo y paso el programa a cualquier persona para que lo use en su ordenador nunca funciona debido a que falta no se que archivo, que supongo sera algun .OCX pero no se cual es y por tanto no puedo incluirlo en el paquete de instalacion del programa para su perfecto funcionamiento.
Y como haces el instalador? con qué programa empaquetas todo? a menos que sea que solo haces el .exe en VB y ese es el que entregas. Creo que los ejecutables si funcionan cuando el Form es sencillito y no tiene controles o referencias a librerias, es decir, todo super simple. Pero en otros casos es necesario hacer un instalador. El empaquetador del Visual Studio no es confiable pero puede usarse para saber las dependencias del programa (DLLs, OCXs, y cualquier otro archivo, algunos .DEP, etc) Otro motivo es que el programa para el que tengo esta duda no usa ninguna base de datos para su funcionamiento principal y para llegar a imprimir el reporte tengo que crear una base de datos solo para esto y actualizarla cada vez que el programa realice alguna de las operaciones que quiero mostrar en dicho reporte.
Uhmmm... tu programa no almacena nunca datos, debe ser un programa que se le meten datos en la ventana pero que todo esos datos estan solo en memoria y realizas cualquier cosa (operacion matematica, etc..) datos que usas para hacer algunos procesos pero que no necesitas conservarlos (guardarlos). Pero se te ha presentado la necesidad de imprimir el resultado de esos datos ingresados. Hacer una BD solo para una salida a un reporte, pues si, se ve como que no muy necesario o requerido solo para eso, que de hecho si podría servir, tal vez conservando un historial pero no es la idea. En la maoyoria de los casos un Reporte representa traerse informacion de alguna parte (en la mayoria de los casos) por eso no entendia, pero tus datos a imprimir solo estan en Textbox o en variables, en memoria al momento. Has intentado en vez de llevar eso a un reporte, el ver por el .Print? a mi esa exigencia aun no se me ha presentado, no sé para algun futuro Lo de una BD con una sola Tablita podría ser como ultima opción, es decir, al menos hay un plan B o plan de contingencia (rompa el vidrio en caso de emergencia) Pues hay que buscar sobre como llevar el contenido de objetos (Text o Label, variables, etc) del Formulario al datareport y tambien probar con lo de .Printer del Form haber que tal.
171
« en: Jueves 23 de Noviembre de 2006, 00:03 »
mi duda es si se puede de alguna forma imprimir el mismo datareport sin necesidad de tener que usar una conexion a la base de datos con el dataenviroment, es decir, mandando nosotros los resultados al datareport de alguna manera.
hola Daggoth disculpa mi pregunta pero... porqué deseas ver la manera de que el reporte haga lo suyo, pero con la opción de no usar el DataEnvironment o de no estar conectado a la BD? es decir, qué problema tiene el DataEnvironment para no querer usarlo como puente. Bueno, pues yo lo que quiero es saber si ademas de este metodo, existe algun metodo para imprimir un datareport sin necesidad de tener que crear un archivo access, es decir, si puedo mandar a mi datareport los datos directamente de algun modo para que al iniciar la aplicacion no me diga siempre que estan mal los datos de origen porque no tengo ese archivo access y por tanto no lo tengo asociado a mi datareport.
¿Por qué tu programa o reporte tendría que perder la conexión con la BD? Si en vez de una BD (sea access o SQLServer, Oracle, Postgred, MySQL) usarias por ejemplo guardar los datos en un archivo TXT y traertelos al reporte, sería peor, una BD sería lo ideal, porqué tu programa perdería conexión, y ocasionaria tal problema en relacion del reporte con los datos? todo lo que pregunto lo apunto al el porqué no usar el DataEnvironment o porque tu programa llegaría a perder la ruta o conexión con la bd.
172
« en: Miércoles 22 de Noviembre de 2006, 23:45 »
Hola Gallar! Es probable que tu CD tenga algun problema, o mira a ver si instalandolo en otra PC presenta el problema. Ese archivo parece ser el Wizard (Asistente) de instalación que inicia el programa para instalar. Porque si tu Windows está actualizado en ServicePack y es un Windows actual, pues debe ser el CD, muy probablemente. Y ese .exe está dentro (empaquetado) dentro del SETUP.exe porque yo busque ese archivo en mi CD y en mi PC y no está. Si el CD sirve en otra PC tienes que ver si tu Windows está actualizado el Service Pack (SP) o ver si algun programa da conflictos en alguna DLL que por casualidad comparta o que no pueda acceder porque otro programa está usando la libreria en el momento. En el caos de ser el CD, pues sea porque la superficie del CD está rayada o tu archivo SETUP.EXE está corrupto (en caso de ser CD copia, se copio mal, no sé) pues tendrás que buscar otro. saludos
173
« en: Miércoles 22 de Noviembre de 2006, 18:07 »
cpmario: El problema que planteas pudiera solucionarse también, colocando todas las causas, de 'no entrega', en un ComboBox y seleccionando solo una de ellas, si hay varias causas, se seleccione la más relevante. El único problema sería que la causa fuera 'Otra', para lo cual habría que darle oportunidad al capturista que escribiera el motivo.
Oops!! se me habia pasado esta parte Si yo pense en eso tambien, ponerlo todo en un combo pero el problema era el usuario tendria que estar desplegando el combo muchas veces, además al pulsar el boton guardar se guarda todo de una vez, con un combobox tendría que estar adjutando cada item del listado en alguna variable, tabla, etc.. para luego guardar. Asi como ha quedado creo que esta muy bien porque eso de hacer una tabla co 30 campos, realmente no sé como saldrian los datos para un repote ya que no todos los campos se llenan, y hablando mas de Filas y no de Registros (para verlo mejor) no serviria en el reporte, aun colocando un largo WHERE Ausente<>"" AND .... en una sql validando cada campo de los 30 en la tabla, ya me daba vueltas todo de que asi no podia ser, tal vez si para el programa pero no para reporte alguno.
174
« en: Miércoles 22 de Noviembre de 2006, 16:37 »
compadres ya lo resolvi y viniendo corriendo a exponerlo, indico que es precisamente la solucion que dice el buen amigo F-Tanori La Tabla que guarda lo que está en el recuadro Azul tiene estos campos: TR_SERVICIOS (este ID es unico) TipoServicio TipoGestion Fecha IDIDSucursal Dias_Habiles CodRegion Total1 --> Total (TextBox en amarillo, Pestaña 1) Total2 --> Total (TextBox en amarillo, Pestaña 2) Y la Tabla que guarda lo que está en el recuadro rojo es esta asi: CAUSAS_NO_ENTREGADOS (este ID si permite repetirse) ID Motivo TipoCNE TipoServicio IDSucursal CodRegion Cant Y efectivamente como ha comentado el amigo F_Tanori a matriz se minimizó todo: Matriz tanto para los Check como para los Text Aqui sólo la parte de lo de matriz: For i = 0 To 48 If Text1(i).Text <> "" Then RsCNE.AddNew RsCNE("CodRegion") = RsConfig("CodRegion") RsCNE("TipoServicio") = SERVICIO If i >= 0 And i < 30 Then RsCNE("TipoCNE") = 1 'No Imp ElseIf i > 29 And i <= 48 Then RsCNE("TipoCNE") = 2 'Imp End If RsCNE("IDSucursal") = SUCURSAL RsCNE("ID") = LbID.Caption RsCNE("Motivo") = Check1(i).Caption RsCNE("Cant") = Text1(i).Text RsCNE.Update End If Next i
Eso del IF i >= 0 And i < 30 Then y el otro con i > 29 And i <=48 Then es porque el la segunda tabla estoy colocando lo que está en ambas pestañas y para que no se mesclen los datos de una con la otra, pues lo valido con un campo: TipoCNE = 1 --> Es No Imputable TipoCNE = 2 --> Es Imputable El botoncito que dice LISTO hace la sumatoria de los Text que tengan dato: Primera Pestaña: Causas No Entregados [No Imputables]: Dim TotalNoImp As Double TotalNoImp = 0 'No Imp: For i = 0 To 29 TotalNoImp = TotalNoImp + Val(Text1(i).Text) Next TxtTotalNoImp = TotalNoImp
El otro botoncito de LISTO de la otra pestaña: Causas No Entregados [Imputables]: Dim TotalImp As Double TotalImp = 0 'Imp: For i = 30 To 48 TotalImp = TotalImp + Val(Text1(i).Text) Next TxtTotalImp = TotalImp
Asi restauro todos los check y text: For i = 0 To 48 Check1(i).Value = 1 Text1(i).Text = "" Next i
Tu solucion es bastante burda, por decirlo, suavemente. Pero soluciona tu problema. Que sea lo mas eficiente, es otra cosa.
Burda = sifrino (no importa si ha sido por "decirlo suavemente") Que sea lo más eficiente es la idea y lo que siempre se trata de buscar Si tienes un minima nocion de gestion de base de datos, podrias haber modelo tu problema y asunto arreglado.
R: digo lo mismo que el amigo cpmario sobre esto. Por el icono del formulario, espero que no seas de CHILE, por que, deja bastante que desear tu solucion...
El icono es de la empresa, en eso yo no tengo nada que ver. Y no no soy de Chile y es triste que tal vez tu lo seas, porque tal vez yo no sea un erudito en la programacion o más aun en gestiones de bases de datos, pero al menos no soy pedante. Te recomiendo que con el ultimo comentario, que en vez de decir lo que piensas, mejor piensa lo que dices, veras que en ese orden no te llevas la sorpresa de un posible disgusto o mal entendido por parte de las personas a quienes te expresas, modera mejor tus palabras para la proxima. O en su defecto mientras sigas con esa actitud (que no te conozco ni te he hecho nada) descarta u omite mis post en el futuro, haste de la vista gorda y lee y participa en el de los otros menos en uno que yo escriba. A los demás muchachos muchass gracias, no me sorprende que el amigo F_Tanori apreciese con la solución, me alegra no haber pasado antes porque sino, la idea hubiese sido de él (por leerle) y no mia (al menos en esto) por la obsesión y gusto de ver como podía darle la mejor solucion a ello, concordamos en lo mismo y lo coroboro al verlo. gracias muchachos
175
« en: Martes 21 de Noviembre de 2006, 23:05 »
me voy a tomar un tiempito de puro análisis a pensar a papel y lapiz sobre esto, porque haciendo lo ultimo escrito sirve para el programa, pero no para los reportes. Si algunos campos no se llenan, quedara el campo vacio o con un 0 en la tabla (suponiendo que le indique al programa que si no hay nada, que ponga un 0 o deja el campo vacio) En el reporte no podría poner todos esos campos, 30 campos, ni siquiera con hoja horizontal y con fuente de letra 8 entrarian todos, a muy pegados unos con otros y no sabría como hacer por algun Query el que salgan los datos siempre y cuando tengan un valor <>"" o <>0. a darle pelea así sea que me tome varios dias o más a puro papel y lapiz hehehe
Páginas: 1 ... 5 6 [7] 8 9 ... 15
|
|
|