|
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.
Temas - UserCode
26
« en: Sábado 9 de Junio de 2007, 22:26 »
Hola desarrolladores Me gustaría conocer como editan en ADO, yo debo recurrir al control Adodc asi: Adodc1.CommandType = adCmdText Adodc1.ConnectionString = conexion Adodc1.RecordSource = "Select * From agenda_tb Where nombre='" & txtNombre.Text & "'" Adodc1.Refresh Adodc1.RecordSource = "Select * From agenda_tb Where nombre='" & txtNombre.Text & "'" Adodc1.Recordset.Fields("nombre") = txtNombre.Text Adodc1.Recordset.Fields("telefhab") = txtTelefHab.Text Adodc1.Recordset.Fields("telefcel") = txtTelefCel.Text Adodc1.Recordset.Fields("correo") = txtEmail.Text Adodc1.Recordset.Fields("direccion") = txtDireccion.Text Adodc1.Recordset.Update Adodc1.Refresh MsgBox "El Registro ha sido Actualizado", vbInformation, "Control de Registros"
La variable "conexion" pues se trae toda la cadena de conexión para el control Adodc, pero fuera de Editar, el resto lo puedo manejar sin usar el control Ado, es decir, lo tengo solo por este código. Con DAO uno solo colocaba con una variable Recordset: Rs.Edit y todos felices Pero con ADO, Rs.EditMode no conozco qué le faltaria para funcionar, porque yo puedo por ejemplo cambiar solo el codigo de conexión, pasando de DAO a ADO y el resto del código seguiría igual exceptuando el de Editar. En el caso de no querer usar un control Adodc sino por variable Recordset, como Editan, como lo hacen
27
« en: Sábado 9 de Junio de 2007, 21:19 »
EDITANDO...FEDERATA: Perdon, toy presentando unas fallas tecnicas debido a que no es posible eliminar el mismo usuario que crea el post, pues lo edito, ya me tropece con algo que me oriento con respecto a MySQL, mil perdones, lamento no haberme tropezado antes con eso. Eran problemas de borrar cuentas de usuario en MySQL no sé porque a veces no me sirve poner: DROP USER pepe; sino: DROP USER pepe@localhost Pero en otras lo primero si lo acepta, era problemas de borrar cuentas de usuario debido a que necesito un usuario con Host (%) y no con Host (localhost). Si gusta, puede borrar este post moderador
28
« en: Martes 5 de Junio de 2007, 00:16 »
Saludos a todos quienes usan Crystal Report Estoy tratando de hacer un reporte en Crystal, los datos, provenientes de una tabla de una Bd MySQL a la cual accedo actualmente y por los momentos por ODBC. El problema está en que Crystal no logra conectarse a la BD, a pesar de que los datos de Servidor, Usuario y Password son correctos, para ver mejor esto indico los pasos con cada ventana. Bueno, arranco todo bien con la idea de comenzar el informe/reporte: Luego caemos en escoger el tipo de base de datos a trabajar: Selecciono de la carpeta ODBC la conexión MySQL que reconozco en la lista, la misma con la que se conecta el programa: Al seleccionarlo enseguida aparece la ventana ODBC de MySQL, la misma del Panel de Control y origen de datos de windows: Yo tengo 3 usuarios en MySQL, root por default, y pepe y jose como nuevos usuarios creados, solo tienen acceso y privilegios a una BD y una Tabla, pero ni con root y su clave me ha servido. Luego de puslar OK, me pasa a esta siguiente ventana de la cual selecciono alguno de esos dos archivos presentes que ya habia hecho antes con fallidos intentos, embasurandose cada vez más arbol ODBC de Crystal con DNS nuevos que no funcionana: Luego de esa ventana me vuelve a mostrar otra ventana parecida (pero no igual) de la ventana ODBC de MySQL: A la final lo único que obtengo es esto: He cambiado localhost por nombre del PC, por la IP y nada. Y en otras ocasiones hasta esto: Esta ultima ventana no la carga el Crystal, es la ventana de ODBC MySQL del Windows en su Panel de Control y su cuestion de Objeto a datos, se verá que es exactamente igual a una de las ventanas ya mostradas anteriormente, con la diferenca de que está ventana si funciona: Bueno ahí estan las pruebas, podría explicarme alguien qué estoy haciendo mal, lo que me intrigado es que la ventana ODBC que llama el Crystal es la misma de Windows que si funciona desde la aplicación de Objeto a Datos del Windows, pero no funciona al tratarla en Crystal para terminar de enlazar y hacer el reporte. Me siento como si estuviese viviendo un capitulo de la Dimensión Desconosida
29
« en: Lunes 4 de Junio de 2007, 16:19 »
buenas, estaba endeudado con el tabernero por eso no pasaba por aqui Asi como una noche luego de un día largo y dificil, con los altibajos del día, la semana y el mes, llegar a tomarse algo frio y refrescante, espumoso que distrae un poco el pesar del día a dia y luego es cuando nos pregunta el que nos da los traguitos "y que tal, como estuvo el día" yo creo que un manejador de barra nunca debe preguntar eso hehe. bueno, no es que todos los días sean horribles, al menos no preguntarles a quienes tengan cara de sicario y viviendo con suegra. Pues esto (post) esta o trata de cosas como: - y como estuvo tu dia: bueno ayer luego de relacionar las tablas llego el jefe diciendo que debia.... - y que haras con respecto a eso: voy a hacer los cambios pero voy a hablar con... - y que tal la entrega: bueno luego de 4 días tratando de resolver un problema con la conexión y consultas, entregamos todo estupendamente maravilloso y nos fuimos todos a la tasquita de la esquina, porque era vienes y porque ayer fue dia de pago y además tambien porque... etc. De eso trata este post, cuentos y más cuentos del día a día de un programador Un día dificil que he tenido es tratar de entrar a una fortaleza de una empresa que se encarga de llevar en camiones blindados, dinero, y demás cosas como chequeras, tarjetas de credito a sus dueños etc. Todo un proceso, mucha vigilancia, solo para seguir con el levantamiento de datos para un proyecto pautado por el encargado del Dpto de RRHH, si mucha seguridad, luego de entrar a veces siento como si me estuviesen apuntando, mucha gente armada, no creo que nadie intente robar en ese lugar y si algun día pasa algo ahí, pues espero estar bien lejos. Y luego algo nuevo, visita a un ginecologo para un programita de historial medico, ya fui una vez, las mujeres en la sala de espera me miraban raro ¬¬ al llegar ¿y este que hace pidiendo ver al doctor? pensando la secretaria que era visitador medico de esos que le venden medicinas a los doctores en su consultorio. Bueno, conozco gente que tiene cosas verdaderamente locas que contar, como el caso de una persona que pidio que le mandaran entonces una copia en diskette, a la hora llego un motociclista con una "fotocopia" del diskette, dios mio dame pasiencia Y consultas de soporte tecnico por telefono a otras sucursales, indicando hacer algo en el "Escritorio" pero la persona al otro lado de la linea pues... hehe buscando lo que le decian, casi solo le falto meterse debajo de la mesa (escritorio) no encontraba la cuestion. Si definitivamente dentro y fuera de una oficina, por telefono, en reuniones o en la esquina a una calle del trabajo pasan cosas, normales y locas. Cualquier cosa para contar, de todo un poco desde los actos de magia a los cuales hayas tenido que recurrir para saltarte el proxys para chatear por messenger hasta como hiciste para pasar los datos de excel a la base de datos, luego tabulado en archivo plano y finalmente a formato mp3 para que el jefe lo escuche mientras tiene un romance con su secretaria y que tu eres el único que sabe en toda la oficina, etc PD: se vale poner de todo aquí (bueno apegado al tema claro) tambien se vale matar una gallina y hacer ofrenda seremoniales con muñequitos vodoo del jefe con alfileres, cortarle mechones de pelo a la que tanto nos gusta de la oficina pero que no nos hace caso y montar un pedestal obsesivo con sus fotos, etc.. post no acto para personas cardiacas y menores de 18 años. LOL xD
30
« en: Domingo 3 de Junio de 2007, 19:00 »
Saludos, lamento el post, sé que ya hay post sobre conexión a MySQL, estuve viendo estos: Post 1Post 2Web de MySQLPasando a bases de datos libres, pues tengo esto: Esta es la configuración en ODBC: Y este es el código con el que trato de conectarme: 'Referencia: ADO 2.8 Dim conexdb As ADODB.Connection Dim rs As ADODB.Recordset Private Sub Form_Load() Dim Servidor As String Dim BaseDatos As String Dim Usuario As String Dim Password As String Dim SQL As String Dim Conexion As String Servidor = "localhost" BaseDatos = "agenda_db" Usuario = "admin" Password = "123456789" SQL = "Select * From agenda_tb" Conexion = "DRIVER={MySQL ODBC 3.51 Driver};" Conexion = Conexion & "SERVER=" & Servidor & ";" Conexion = Conexion & "PORT=3306;" Conexion = Conexion & "DATABASE=" & BaseDatos & ";" Conexion = Conexion & "USER=" & Usuario & ";" Conexion = Conexion & "PASSWORD=" & Password & ";" Conexion = Conexion & "OPTION=3;" Set conexdb = New ADODB.Connection conexdb.ConnectionString = Conexion conexdb.CursorLocation = adUseClient conexdb.Open If conexdb.State > 0 Then Set rs = New Recordset rs.Open SQL, conexdb, adOpenStatic, adLockOptimistic Else MsgBox "No se ha podido realizar la Conexión con la Base de Datos", vbInformation, "Fallo la Conexion" Unload Me End If End Sub
Pero me genera el siguiente error: En la ventana de conexión ODBC de MySQL no puedo asignar una Database, ese combo está vacio, si trato de seleccionar, como no tiene nada saca este aviso: Request returned with SQL_ERROR. Si escribo le base de datos no pasa nada. El código lo veo lógico, pero algo hace que no pueda conectarse, por favor ves algo que ocasiona la falla de conexión, soy virgen con mysql
31
« en: Miércoles 23 de Mayo de 2007, 02:13 »
Hola por aquí por este foro de Bd nuevamente No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ???? Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto. Ahora viene el muy... que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible. Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo). El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades. Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho. Bueno a lo que venía a preguntar: Por favor ¿Sabe alguien como sumar Horas en una sentencia SQL? He estado intentado algo con CONVERT(DateTime, campo), DATEDIFF() y SUM(DATEPART()) pero error seguido de otro, no he logrado formar algo concreto que funcione. Como estos datos son el todo y el protagonista del programita, tengo que preguntar, dónde lo subo (cuando esté listo) para que se lo bajen porque al ayudarme a resolver estos problemas, practicamente es como si el programa fuese de todos, aun saliendo del paso de algunos problemitas antes presentados sin consultarlo por aquí, ya un par de cosas, me han ayudado a resovlerlo por aquí. Lo guardan de recuerdo
32
« en: Lunes 21 de Mayo de 2007, 23:02 »
Saludos aquí nuevamente. No tengo idea de como solventar este asunto, no sé si en algun momento haya tenido alguien este problema: Tengo dos ComboBox (son más pero tratan de lo mismo pero distintas horas) En uno se indica hora de Entrada del empleado, y en el otro se indica la hora de salida. En un Label se coloca el estimado de Horas de ese rango. Pero los Combo tienen lo siguiente: (ambos los mismos datos) 6:00 am 6:30 am 7:00 am 7:30 am 8:00 am 8:30 am 9:00 am .... etc .... etc .... etc 12:00 pm 12:30 pm 1:00 pm 1:30 pm 2:00 pm Si se selecciona en un combo 7:00 am y en el otro 12:00 pm, se deberia de mostrar en el Label de horas = 5 (horas trabajadas) Ni idea en verdad de como atacar o darle la vuelta correcta a esto, no podría con algo como: If CmbEntrada.Caption = "7:00 am" And CmbSalida.Caption = "12:00 pm" Then LbTotalHrs.Caption = 5 ElseIf CmbEntrada.Caption = "8:30 am" And CmbSalida.Caption = "12:00 pm" Then Lb TotalHrs.Caption = 4.5 ElseIf ..... .... etc .... etc
Las combinaciones en la sentencia de deición son demasiadas, ha sido lo primero que me paso por la mente, no digo que sea lo que vaya a usar. ¿No habra algun control de VB que permita resolver este tipo de tarea? Ya tenia el programita listo y viene el que lo mando a hacer a venir a desear tomar los datos de otra forma y me desperoleo todo, espero que no tenga que reestructurar las tablas o el reporte, alguien sabe por fa?
33
« en: Viernes 18 de Mayo de 2007, 01:17 »
Hola Tengo unas dudas sobre una SQL que debe hacer algo en un pequeño programa que lleva un control de horario laboral, en esto tengo algo que se llama "Clausula 26" lo cual establece como máximo de horas laboradas de un empleado a la semana, de 44 horas, por ejemplo, una idea de esa supuesta clausula la explico con un codigo: If TotalLb > 44 Then R = TotalLb - 44 Else R = 0 End If
Pero ¿cómo se hace esto en una sentencia SQL? Este es la SQL con la que estoy trabajando: Select Sum(AM_lb) AS AM1, Sum(PM_lb) AS PM1, Sum(Total_lb) As Total1, Sum(Clausula) As Clau26, Sum(AM_ext_d) As AM2, Sum(PM_ext_d) As PM2, Sum(Total_ext_d) As Total2, Sum(AM_ext_n) As AM3, Sum(PM_ext_n) As PM3, Sum(Total_ext_n) As Total3 From chl_tb Where NumEmp=30915 And Fecha Between #08/05/2007# And #20/05/2007#
Pero Sum(Clausula) As Clau26 no me sirve así, la puse de relleno (mientras tanto de esa forma), ese campo es en este caso R. He probado algo como: Select Sum(AM_lb) AS AM1, Sum(PM_lb) AS PM1, Sum(Total_lb) As Total1, (Select (Sum(Total_lb)-44) As TotalLb From chl_tb Where TotalLb > 44) As Clau26, Sum(AM_ext_d) As AM2, Sum(PM_ext_d) As PM2, Sum(Total_ext_d) As Total2, Sum(AM_ext_n) As AM3, Sum(PM_ext_n) As PM3, Sum(Total_ext_n) As Total3 From chl_tb Where NumEmp=30915 And Fecha Between #08/05/2007# And #20/05/2007#
Pero eso no funciona, en resumen de todo esto, la idea que me da vueltas es la cuestion de que esta SQL (que es para un MSFlexGrid2) tenga dentro otra SQL como la que está entre ( ). Pero me ha costado ver como formarla para que con respecto a ese campo, haga lo del codigo VB pero en SQL. Alguien sabe?
34
« en: Lunes 14 de Mayo de 2007, 16:57 »
Saludos Me gustaria saber que tal es el netBeans, es decir, ¿es el mejor o el más usado para Java? He descargado el Netbeans de su web para OS Windows. Al instalar me muestra este aviso: Y luego seguido este otro: Bueno, posteriormente a eso, baje la cuestion de Java de su web. Luego no sé qué hice que logro cargar el instalador del NetBeans pero luego éste me pedia el Path de algun archivo sobre algo llamado J2ES o J2SE JDK o algo asi, a lo cual no supe qué hacer puesto que no tengo nada bajo algun nombre parecido. ¿sabría alguien como instalar bien el NetBeans y qué archivos requiere y donde bajarlos para dar por finalizado el proceso de instalación? No sé si sea que esté bajando de la web de NetBeans el archivo equivocado o me haya faltado descargar algo más de ahí.
35
« en: Viernes 30 de Marzo de 2007, 23:27 »
Buenas, Disculpa, mis dudas en un llamado de reporte crystal en vb en conexion remota, pero si normalmente uno llama a un reporte desde un ocx crystal en el Form por este código entre otros que complementan el que esto sea posible, es decir, indico el que establece la ruta sobre la ubicaion del archivo rpt: localhost: CrystalReport1.ReportFileName = App.Path & "\reporte.rpt"
cliente--> servidor: Cómo variaría la modificación de esta linea, en el caso de un modelo cliente/servidor ya que esa linea no serviría de esa forma, pero parece que no funciona, si pongo: CrystalReport1.ReportFileName = "\\NombServidor\Proyecto\rep\reporte.rpt"
Sé que hay otras lineas así como esta: CrystalReport1.Connect = "Data Source=Serv;UID=sa;PWD=sa;DSQ=BD;"
Pero me intriga saber si funciona lo del .ReportFileName, porque en el pc cliente se presenta un error que crea un archivo txt llamado event, que indica que no ha encontrado el archivo y pone la ruta, pero la ruta es local, deberia ser la ruta del pc servidor y no del pc cliente.
36
« en: Martes 27 de Marzo de 2007, 16:19 »
Saludos a todos Tengo un problema que en verdad no sé como sería su salida, trato de hacer un reporte, sus datos, una base de datos SQL Server 7, pero al proceder desde Crystal Report 8.5 a crear el reporte, en la lista de Bases de Datos, lo único que siempre consigo referente a SQL Server, son las tablas nativas propias del SQL Server, las Master, pero nada que sea mio, ninguna Bd, ninguna tabla mia. Podría alguien sugerirme el punto que pueda ayudar a que esto tenga algun sentido? porque con ese asunto como indico, no veo manera de poder crear algun reporte hacia una Bd Sql Srever.
37
« en: Domingo 25 de Marzo de 2007, 19:01 »
hola comunidad, escribo este post debido a un problema de enlace de un datagrid, primera vez que veo que Google no tiene ni un link al aviso "No se puede inicializar los enlaces de datos" lo cual es el error que saca un form con un datagrid. Tengo un programita que se conecta a una BD SQL Server 7 que está en otro pc, es SQL Server 7 porque la topología de la red es de par a par, no hay servidor ni ningun pc con windows server, aunque desde el punto de vista para el programa, él si verá entre el programa y la Bd una arquitectura cliente/servidor, pero con una Bd que SQL Server que funcione en sistema operativo de escritorio, como el windows xp. El programita si se conecta a la Bd, debido al realizar operaciones de regisros, consultas, edicion, etc. Pero tengo una ventanita que tiene un DataGrid, al tratar de cargar esta ventanita, el programa se tarda un ratico, y luego saca un aviso que dice: "No se puede inicializar los enlaces de datos" Este es el código Load del Form que tiene el DataGrrid: Private Sub Form_Load() Rs.Requery If Rs.RecordCount > 0 Then Rs.MoveLast TxtNumReg.Text = Rs.RecordCount End If Set DataGrid1.DataSource = Adodc1 Adodc1.ConnectionString = "Driver={SQL Server};Server=JCDZ;Database=BDAgenda;Uid=sa;Pwd=;" Adodc1.RecordSource = "SELECT * FROM Agenda ORDER BY Cedula" Adodc1.CommandType = adCmdText Adodc1.Refresh
El DataGrid está conectado o enlazado a la Bd y la tabla por un control Ado, el código de conexión a la Bd no lo tiene este Form debido a que el Form Padre ya tiene la conexión ella, en todo caso este es el código de la conexión a la Bd que tengo en un modulo y llamo desde el Load del Form Padre: Public Function BDSQLConex() If BD.Errors.Count = 0 Then BD.Open "Driver={SQL Server};Server=JCDZ;Database=BDAgenda;Uid=sa;Pwd=;" Rs.Open "SELECT * FROM Agenda ORDER BY Cedula", BD, adOpenKeyset, adLockOptimistic, adCmdText Else Rs.Close BD.Close End If End Function
Otra cosa, es que el Form con el DataGrid si carga los datos localmente, es decir, ejecutando el programa en la PC que tiene la BD, localhost, pero desde otra PC, es que sucede este problema, sé que el asunto está en el Load del Form que tiene el DataGrid pero no he logrado ver aun qué es lo que falte de código en la conexión del Adodc1 para que el DataGrid muestre los registros de la tabla. Alguna observación a comentar sobre este problema? no sea que yo esté mirando donde no es.
38
« 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
39
« 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 ¿?
40
« 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.
41
« en: Martes 21 de Noviembre de 2006, 20:55 »
hola, (esta vez si que no es algo tonto eso es seguro) es como el tratar de darle la vuelva (mejor solucion) a algo que tiene muchos campos. Yo tengo esta ventana: Lo que está en azul lo meto en una tabla, y lo que está en rojo va en otra tabla: Lo que está en azul lo meto en esta tablita: Y lo que está en rojo lo meto en esta otra: (o al menos esa es la idea) Yo pensaba (o aun pienso) el que tal vez podría poner en el campo Motivo el string del checkbox pulsado. Pero para eso el ID debe repetirse Es decir, si yo en la primera tabla (el recuadro azul) meto un registro, supongamos ID=1 entonces en la segunda tablita (recuadro rojo) meteria ID=1 lo cual sería la relacion entre ambas tablas. Pero si yo selecciono 5, 20 o los 30 checkbox, entonces en la 2da tabla habrían 30 registros todos con ID=1 Asi, si yo quiero ver los registros relacionados, pues creo y supongo que podría en una SQL filtrar los datos, indicando que me busque (para una consulta) todos los registros de la 2da Tabla que tengan el ID de la 1era Tabla. ¿Que me recomiendan? que haga esto asi o que la 2da Tabla sea diferente, es decir, hacer una tabla con 30 campos y validaria asi: If Check1.Value = 1 And TxtCampo1.Text<>"" Then RsServicio("Campo1")=TxtCampo1.Text Else RsServicio("Campo2")="" End If If Check2.Value = 1 And TxtCampo2.Text<>"" Then RsServicio("Campo2")=TxtCampo2.Text Else RsServicio("Campo2")="" End If . . . . If Check30.Value = 1 And TxtCampo30.Text<>"" Then RsServicio("Campo30")=TxtCampo30.Text Else RsServicio("Campo30")="" End If
En una consulta, yo activaria el CheckBox dependiendo si el campo de la Tabla tiene o no valor (el dato es numerico), si el campo está vacio checkbox.Value=0, si está lleno, checkbox.value=1 y pongo en el Textbox el dato. Pero hacer esto ultimo, una tabla con 30 campos, y la otra pestaña tiene como 20, pues serían muchos campos, y luego escribir el codigo validando cada uno Por eso habia pensado si podría tal vez dejar la 2da Tabla como está y no meterle tantos campos. ¿cómo podría hacer para un caso como este? EDITANDO:Me he dado cuenta mientras empiezo todo esto, que va a ser más dificil de lo que pensé, algo me dice que no habra mucha opinión sobre este post, al menos yo me enrrede todo comenzando con esta loca idea de ver si debo o no hacer una tabla de muchos campos vamos a ver.
42
« en: Lunes 20 de Noviembre de 2006, 22:57 »
¿A alguien le ha pasado algo como esto con este control? Tengo un MDIForm con un Toolbar con varios botones, y me he llevado la sorpresa de que (lo vi por accidente) cuando ejecuto el programa, al darle doble click al control Toolbar, aparece una ventana para Personalizarlo, es decir, para agregarle y quitarle botones, o moverlos de posicion. ¿Cómo se podría el ver la manera de evitar que esta ventana no salga? Miré en sus propiedades, y en verdad que no encontré lograr que dejara de salir en ejecución esta personalizacion de la barra
43
« en: Lunes 20 de Noviembre de 2006, 22:47 »
Hola mis amigos sabios y más experimentados laboralmente que yo. Me ha sucedido algo muy raro con una corta sentencia SQL que en VB da error pero al ponerla en una Consulta Access se genera perfectamente. Esta es la SQL: Dim SQL1 As String SQL1 = "SELECT ID, Fecha " SQL1 = SQL1 & "FROM TR_SINIESTROS_ENVASES " SQL1 = SQL1 & "WHERE IDSucursal=" & SUCURSAL & " ORDER BY Fecha"
En VB saca el error de Pocos parámetros. Se esperaba 1Pero la pongo en una consulta en Access y la genera perfectamente sin problemas ¿hay alguna explicación para esto? porque es claro que está fuera de cualquier cosa que yo conozca PD: Si pongo un Alias a la tabla todo sigue igual.
44
« en: Domingo 12 de Noviembre de 2006, 15:33 »
hola Me han facilitado una pistola lectora, sé que se pone junto con el teclado pero no sé cómo sería el código para la interaccción entre ella y el programa. Porque yo escribo el Campo ID en un TextBox, no sé como la pistola al leer el código de barra ponga el String del campo en el TextBox. Porque es decir, uno interactua con otros perifericos, como por ejemplo la impresora y uno sabe que con el .Print o controles con esas funciones lo escribe uno y eso llama al dispositivo, pero con un lector laser pues ni idea de qué código o qué control de VB hace la interacción con el aparatico Alguna sobre esto para comentar?
45
« en: Martes 7 de Noviembre de 2006, 21:37 »
hola, estoy con lo de probar el .Net muy iniciado novaton en ello y me encuentro en la fase de tratar de formular el código de "pan de cada día" con lo que uno puede defenderse en comienzo el cual es las 4 operaciones básicas de una Bd, ya saben, el insertar, consultar, editar y eliminar ya con eso uno se defiende y el resto pues se va viendo en el camino. Bueno, yo entre tanto leer y probar he llegado a lograr meter datos en une BD Access de la siguiente forma por parametros con el command asi: 'Conectando con BD Access: Dim RutaBD As String RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD) Dim ordenSQL As OleDb.OleDbCommand Dim strSQL As String strSQL = "INSERT INTO " strSQL = strSQL & "TB_AGENDA(TxtNombre,TxtApellido,AutoCedula,TxtTelefCel,TxtTelefTrab,TxtTelefHab,TxtEmail,TxtCumpleaños,TxtDireccion,TxtComentarios) " strSQL = strSQL & "VALUES(@Nombre,@Apellido,@Cedula,@TelefCel,@TelefTrab,@TelefHab,@Email,@Cumpleaños,@Direccion,@Comentarios)" ordenSQL = New OleDbCommand(strSQL, ConexionBD) 'Nombre: ordenSQL.Parameters.Add(New OleDbParameter("@Nombre", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Nombre").Value = TxtNombre.Text 'Apellido: ordenSQL.Parameters.Add(New OleDbParameter("@Apellido", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Apellido").Value = TxtApellido.Text 'Cedula: ordenSQL.Parameters.Add(New OleDbParameter("@Cedula", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Cedula").Value = TxtCedula.Text 'TelefCel: ordenSQL.Parameters.Add(New OleDbParameter("@TelefCel", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@TelefCel").Value = TxtTelefCel.Text 'TelefTrab: ordenSQL.Parameters.Add(New OleDbParameter("@TelefTrab", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@TelefTrab").Value = TxtTelefTrab.Text 'TelefHab: ordenSQL.Parameters.Add(New OleDbParameter("@TelefHab", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@TelefHab").Value = TxtTelefHab.Text 'Email: ordenSQL.Parameters.Add(New OleDbParameter("@Email", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Email").Value = TxtEmail.Text 'Cumpleaños: ordenSQL.Parameters.Add(New OleDbParameter("@Cumpleaños", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Cumpleaños").Value = DateTimePicker1.Text 'Direccion: ordenSQL.Parameters.Add(New OleDbParameter("@Direccion", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Direccion").Value = TxtDireccion.Text 'Comentarios: ordenSQL.Parameters.Add(New OleDbParameter("@Comentarios", OleDbType.VarWChar, 20)) ordenSQL.Parameters("@Comentarios").Value = TxtComentarios.Text 'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión: ordenSQL.Connection.Open() ordenSQL.ExecuteNonQuery() ordenSQL.Connection.Close() MessageBox.Show("REGISTRO GUARDADO", "REG GUARDADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
El Editar es igualito a diferencia del Query que cambia a esto, todo lo demás igual: 'Cedula no pq es el ID: strSQL = "UPDATE TB_AGENDA SET TxtNombre=@Nombre,TxtApellido=@Apellido,TxtTelefCel=@TelefCel,TxtTelefTrab=@TelefTrab,TxtTelefHab=@TelefHab,TxtEmail=@Email,TxtCumpleaños=@Cumpleaños,TxtDireccion=@Direccion,TxtComentarios=@Comentarios " strSQL = strSQL & "WHERE AutoCedula=" & Me.TxtCedula.Text
Y borrar pues esto: 'Conectando con BD Access: Dim RutaBD As String RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD) Dim ordenSQL As OleDb.OleDbCommand Dim strSQL As String strSQL = "DELETE * FROM TB_AGENDA WHERE AutoCedula=" & Me.TxtCedula.Text ordenSQL = New OleDbCommand(strSQL, ConexionBD) 'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión: ordenSQL.Connection.Open() ordenSQL.ExecuteNonQuery() ordenSQL.Connection.Close() MessageBox.Show("REGISTRO ELIMINADO", "REG BORRADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
Pero me interesa hacer estas operaciones por el DataAdapter y DataSet y debo decir que en verdad me ha costado mucho lograr que me funcionen, entonces yo pregunto, que falta en este código para que funcione: 'Conectando con BD Access: Dim RutaBD As String RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD) Dim strSQL As String strSQL = "SELECT * FROM TB_AGENDA ORDER BY TxtApellido" Dim dtp As New OleDbDataAdapter(strSQL, ConexionBD) Dim ds As DataSet = New DataSet dtp.Fill(ds, "TB_AGENDA") Dim Fila As DataRow = ds.Tables(0).NewRow Fila("TxtNombre") = TxtNombre.Text Fila("TxtApellido") = TxtApellido.Text Fila("AutoCedula") = TxtCedula.Text Fila("TxtTelefCel") = TxtTelefCel.Text Fila("TxtTelefTrab") = TxtTelefTrab.Text Fila("TxtTelefHab") = TxtTelefHab.Text Fila("TxtEmail") = TxtEmail.Text Fila("TxtCumpleaños") = DateTimePicker1.Value Fila("TxtDireccion") = TxtDireccion.Text Fila("TxtComentarios") = TxtComentarios.Text ds.Tables(0).Rows.Add(Fila) Dim cb As New OleDbCommandBuilder(dtp) ds.Tables(0).AcceptChanges() dtp.Update(ds, "TB_AGENDA") MessageBox.Show("Registro Guardado", "Guardado", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) Catch ex As Exception MessageBox.Show("Error al Intentar Guardar los datos: " & vbCrLf & Err.Description) End Try
No da error, hasta saca el aviso de Messegabox de Registro guardado pero al ir a ver en la tabla, no hay nada PD: perdon que no sea algo para SQL Server porque ahorita Access es lo que tengo más a la mano.
46
« en: Viernes 3 de Noviembre de 2006, 17:56 »
hola a alguien le ha llegado a pasar algo como esto... Tengo 5 reportes que hice en Crystal Report 8.5 y en VB una ventana que llama a cada uno, con un sólo control Crystal incrustado en la ventana, lo raro de todo esto, es que todos los reportes que llamo desde el programa se muestran sin problemas a exceptión de uno, el cual al llamarlo se muestra e inmediatamente se cierra. Al refrescar los datos de ese reporte en el propio Crystal, se muestra sin problemas, ese reporte es un Reporte con 2 suobreportes, y los 2 subreportes son consultas SQL hechas en Access, en vez de ser un reporte con tablas Access, es con consultas Access, el reporte problematico es 1 tabla con 2 consultas SQL de access. El codigo que uso para llamar al reporte desde vb es este: CrystalReport1.DataFiles(0) = App.Path + "\BDVehiculos.mdb" CrystalReport1.ReportFileName = App.Path + "\reportes\ReporteMantPreventivo.rpt" CrystalReport1.RetrieveDataFiles CrystalReport1.WindowState = crptMaximized CrystalReport1.PrintReport
El control de crystal que uso en la ventana de reportes es: Crystal Report Control -> del menu componentes de vb. Ese reporte con o sin formulas, igual carga y se descarga al llamarlo, además por ser un Reporte con Sobreportes (que son consultas SQL de access) no es el problema porque de los 5 reportes otros 2 tambien son asi, y si salen bien. Alguien ha tenido problemas parecidos? un reporte que al intentar llamarlo se abre y se cierra inmediatamente? es el único inconveniente que tengo, no sé si hacer el instalador (pq el programita ya esta listo) pero esta esto problema de ese reporte con esos sintomas tan extraños
47
« en: Jueves 2 de Noviembre de 2006, 02:12 »
hola buenas a todos!! Esto no es algo de tema impotanton o serio, es algo de "ver si se puede o no" lo cual es referente a esa ventanita de presentacion que sale cuando se ejecuta un programa. Pero en mi caso tengo una idea algo loca sobre como mostrar esa ventanita de presentacion, veran... Yo he puesto en esa ventanita este código, el cual fuerza al Form a ser transparente, con un Alpha bajo, algo asi como papel cebolla: 'Codigo Interezante para forzar transparencia en un form de manera muy sencilla y con transparencia graduable Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Const GWL_STYLE = (-16) Private Const GWL_EXSTYLE = (-20) 'Requires Windows 2000 or later: Private Const WS_EX_LAYERED = &H80000 Private Declare Function SetLayeredWindowAttributes Lib "USER32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Private Const LWA_COLORKEY = &H1 Private Const LWA_ALPHA = &H2 Public Sub MakeWindowTransparent(ByVal hWnd As Long, ByVal alphaAmount As Byte) Dim lStyle As Long lStyle = GetWindowLong(hWnd, GWL_EXSTYLE) lStyle = lStyle Or WS_EX_LAYERED SetWindowLong hWnd, GWL_EXSTYLE, lStyle SetLayeredWindowAttributes hWnd, 0, alphaAmount, LWA_ALPHA End Sub 'La transparencia es graduable modificando el alphaamount en este caso esta en 150 mientras menor es este valor mas transparente se torna Private Sub Form_Load() Call MakeWindowTransparent(Form1.hWnd, 150) End Sub
Ese código, sin modulo ni archivo externo, solo eso en un Form1 y sale el efecto, bueno mi idea es usar eso para la ventanita de presentacion pero con una variación la cual es la siguiente idea.. Que la ventana comienze con eso del alpha=0 y que con un bucle For o controles Timer suba poco a poco gradualmente hasta 250 que es ya el valor de visualización normal de la ventana. Y que al alcanzar el 250, vuelva poco a poco a bajar a 0. Es decir, que la ventana aparezca gradualmente y se vaya desvaneciendose, ese es el efecto, sé que en Call MakeWindowTransparent(Form1.hWnd, 150) en el 150 podría poner una variable Intener "i" pero me he enrredado un poco tratando de ver como hacer esto, y he terminado con bucles infinitos y colgadas del vb. bueno esto es para un programita y la presentacion pienso hacerles una bromita con esta imagen que muestro abajo como presentación, eso por lo del halloween, ya saben de donde saca McDonnald sus carnes para hamburquesa, por eso el dicho de "somos lo que comemos" o algo asi la gente a quienes les estoy haciendo algo a veces se juegan con uno y bueno, les voy a poner eso de presentacion para ver que caras ponen, quien quita que hasta digan algo como: oye no esta mal, nos gusta dejale eso asi. claro le falta ponerle el nombre del programa, version, etc... Creen que si se pueda sin problemas verdad! pregunto no sé
48
« en: Domingo 29 de Octubre de 2006, 16:51 »
Hola, escribo esto pq conseguir un Manual o Tutorial de Crystal Report no es fácil y creo que aqui no he visto alguno, entonces pongo el link de uno. Manual de 720 páginas en documento PDF de Crystal Report 8 (archivo .zip) y se ve muy completo, desde el novaton hasta el que ya le mete al Crystal, no es facil conseguir buen material de tutoriales de Crystal, asi que hago Eco de éste tutorial aqui porque lo bueno, debe repetirse siempre
49
« en: Viernes 27 de Octubre de 2006, 22:40 »
hola a todos Yo aun sigo medio haciendo cosas en esta área en VB6 no soy un experto ni nada de eso, pero de poco a poco me encuentro migrando al .NET para en el futuro dejar a la version 6, y pulirme, sino pude o no lo hice en el 6 al menos haber si lo hago o logro en el .NET xD!! Yo escribo en esta ocasión porque deseo saber algo o mejor dicho aclarar unas dudas, que hacen que VB.NET me guste y en otras lo odie un poco hehehe. Cuando yo hago un proyecto nuevo, el VB.NET viene y le crea a uno la carpeta del proyecto y ahí unas subcarpetas, yo hice una BD Access y está en la carpeta bin la cual es subcarpeta de la carpeta del proyecto. Me gustaria saber si uno puede personalizar eso, es decir, que yo cree mi carpeta BD o carpeta Reportes, no sé si pueda hacerlo en: \PROYECTO1\BaseDatos \PROYECTO1\Reportes o si deba ser: \PROYECTO1\bin\BaseDatos \PROYECTO1\\binReportes Otra cosa que si desearia tratar de entender es lo siguiente: En VB6 yo uso el App.Path & "\BaseDatos.mdb" Pero en el VB 2005 .NET el equivalente de esto es: My.Application.Info.DirectoryPath & "\BaseDatos.mdb" Yo tengo la BD en la carpeta \bin\ pero esta Patch del .NET agarra como ruta esto: \PROYECTO1\bin \Debug\BaseDatos.mdb" Me gustaria tener la BD en \PROYECTO1\BaseDatos.mdb Pero parece que para que no me de error, debo tener la BD en la carpeta \bin\ Pero el Path del VB.NET la busca en \bin\Debug\BaseDatos.mdb Realmente es un poco fastidioso todo esto a como el .NET lo obliga a uno a tener que poner los archivos donde él quiere y no donde uno quisiese, o en caso de configurarse esto, no sé dodne sería, al menos el My.Application.Info.DirectoryPath dudo mucho que pueda ajustarse, él solito tiene internamente la ruta hasta llegar a \bin\Debug\ Alguna sugerencia sobre cómo ordenar los formularios, Base de Datos y demas archivos en la carpeta del proyecto sin volverse uno un lio?
50
« en: Martes 17 de Octubre de 2006, 23:51 »
Hola a todos No sé a quien preguntarle esto, asi que lo pregunto en foros,solocodigo para saber su opinion sobre de que forma podría hacer lo siguiente... Tengo un archivo en Excel de algo que alguien me pidio el favor de hacerselo a programa (ahi es donde entro yo con el vb). En la imagen se ven 3 cuadrillas, en la primera se repiten nuevamente las primeras 6 columnas, porque es por Sucursal y Mes, y ya le hice una ventanita a eso en VB para llenar esos datos, el cual es la segunda imagen que pongo. Mi dilema es la ultima cuadrilla o recuadro, la cual si se fijan, es un conteo de la primera cuadrilla. Yo tengo una Tabla en Access con campos de la primera cuadrilla, lo que no sabría bien es como realizar una consulta SQL que me cuente lo que refleja la ultima cuadrilla o recuadro, la que dice RESUMEN POR USO Y CONDICION. Por medio de un boton en la ventana, yo cargo otra ventana con un MSFlexGrid que deberia mostrar lo mismo que ese ultimo recuadro, sus datos en base a la sentencia SQL. Enlace la grilla a un control Data Dao e intente probar con algo como esto: Data1.DatabaseName = App.Path & "\BDVehiculos.mdb" Data1.RecordSource = "Select Count(TxtUso) From TR_CTRL_VEHIC_KM Where TxtUso = 'AVANCE'"
Siempre he usado sentencias SQL sencillas, y cualquier cálculo lo hago por código del vb pero esta vez deseo poderlo hacer por medio de sentencias SQL, pero no tengo mucha idea clara de como hacer esto. Que me aconsejan que pueda hacer para poder arrojar en una rejilla algo como lo expuesto en este post muchas gracias por tu tiempo amigo. PD: Me falto un dato en la ventana KM ACT pero ya lo arreglo mil perdones se me paso.
|
|
|