• Viernes 3 de Mayo de 2024, 05:46

Mostrar Mensajes

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 - Juanolo

Páginas: 1 2 [3] 4 5 ... 9
51
Visual Basic 6.0 e inferiores / Re: Controles Ocx
« en: Martes 19 de Abril de 2005, 00:34 »
Pues, Vivan!, entonces Mafalda y Condorito.

Un saludo desde este otro lado del monte.

52
Visual Basic 6.0 e inferiores / Crystal Y Xp
« en: Jueves 14 de Abril de 2005, 18:28 »
Hola amigos!

A pesar de que no es urgente, nunca está de más pedir una opinión:

Ocurre que tengo una versión de Crystal Report muy antigua (sí, ya sé que hay un foro para eso, pero pasa más gente por aquí). Creo que es la 4.5, la que venía con Visual 5.0.
A pesar de todos sus peros, me ha servido bastante bien hasta ahora, en que ya casi todos los computadores en que instalo mis aplicaciones tienen Windows XP. El problema es que, en muchas de estas máquinas, no en todas, no imprime. Los reportes se ven bien, pero a la hora de imprimir, o no funciona, o me manda una chorrada de páginas con sólo encabezados.
¿A alguien se le ocurre alguna solución? No tengo dinero para comprar una versión más nueva, pero, si lo hiciera, puedo tener la seguridad de que mis problemas terminarán?

Por su paciencia, mil gracias.

Salu2.

53
Visual Basic 6.0 e inferiores / Re: Problemas Con Vb Y Mysql
« en: Jueves 14 de Abril de 2005, 18:18 »
Porqué no?

Prueba así:

Set str = conexion.Execute("INSERT temporada(codigo, descripcion, fechaini, fechafin, precio) VALUES('" & codigo + 1 & "', '" & txtdescripcion.Text & "','" & DTPicker1.Value & "', #" & format(DTPicker2.Value, "mm/dd/yy") & "#, '" & Total & "')")

Espero te funcione.

Salu2

Modificación: Se me pasó aplicar el ejemplo al DTPicker1, pero creo que la idea se entiende.

54
Visual Basic 6.0 e inferiores / Re: Problemas Con Vb Y Mysql
« en: Jueves 14 de Abril de 2005, 01:06 »
Hola:
No conozco mysql, pero el sql es tan standard que en una de esas la siguiente opinión es importante:

1º La fecha debe ir en formato GRINGO. es decir MM/DD/YY.
2º El caracter para encerrar fechas no es ', sino #

U sea #04/13/05#, por ejemplo.

Espero haber sido de utilidad.

Salu2

55
Visual Basic 6.0 e inferiores / Re: Controles Ocx
« en: Martes 12 de Abril de 2005, 16:45 »
Hi!
(Bueno el avatar... muy chilensis)

Creo que a lo que te refieres es a cargar los ocx en tiempo de diseño. Es decir, para utilizarlos como componentes de VB.
Para eso debes Registrarlo. Basta con arrastrar el componente sobre el archivo (o un acceso directo de este) regsvr32.exe, que generalmente está ubicado en c:\windows\system32 (XP), creo que en versiones anteriores la carpeta es system.

Como explicaba jodijo, si creas un instalador (InnoSetup, p ej), podrías registrarlos automáticamente. Pero Basta conque pongas un acceso directo de regsrvr32 en la carpeta en donde tienes los controles y luego los arrastres sobre él, no te tomará más de un par de minutos.

Chau

56
Visual Basic 6.0 e inferiores / Re: Control De Llamadas Con Vb
« en: Martes 12 de Abril de 2005, 16:36 »
Hola Roxi!
Hace  tiempo no andaba por este foro, así es que salu2 a to2.

Mi experiencia con centrales es sólo a través del puerto serial. Éstas envían una cadena de código que siempre tiene los campos en las mismas posiciones, lo que permite separar trozos de cadena como fecha, duraciòn de la llamada, hora de inicio, Nro Marcado, etc.
No me imagino posible que envíen esta información a través de la misma línea, por lo que proponerse un programa que maneje esto equivaldría a quitar definitivamente la central y dejar que la PC haga esa función... No imagino como.
Respecto al código de empleado, de tener esta posibilidad la central, y si tuviera salida serial, entonces efectivamente debería estar en la línea de texto que te mencioné.
Como último dato, algunas centrales son 'expandibles'. Es decir, se les agregan tarjetas como a los Pcs; puede que la tuya sea una de estas y le falte la salida serial.
En el manual de instalación (no el manual de usuario) encontraras las características. Generalmente: si puede imprimir en una impresora serial, se puede conectar a un Pc.

Espero te sirva de algo.
Si te puedo ayudar en algo más, andaré revolotendo por este foro.

Chau

57
Visual Basic 6.0 e inferiores / Re: Para Todos
« en: Jueves 23 de Diciembre de 2004, 15:01 »
Amigos,
Por razones de trabajo :comp:  (o falta de él) :( , he estado alejado del foro. Pero no podía terminar el año sin dejarles un saludo de Navidad y Año Nuevo... Y como la discusión ya estaba, me sumo a ella.
Saludos a todos y que el próximo año sea mejor que este.

Abrazos desde Chile a todos los foreros. :hola:

58
Visual Basic 6.0 e inferiores / Re: Error En Una Sola Máquina
« en: Viernes 12 de Noviembre de 2004, 23:06 »
Trata de determinar qué control tiene ese form que no tengan los demás, pues según entiendo sólo se cae en un form específico. Por otro lado, y sólo para abrir el abanico de posibilidades, existe la posibilidad de que la diferencia esté en la 'Configuración Regional' de los distintos equipos.
Por ejemplo, si el formato de fecha del equipo es 01/01/2004, y tu has definido el formato del maskedbox como ##/##/##, entonces:
si tienes una instrucción como: MaskedBox1=date en form_load, cuando cargues el formulario dará un error, saltarán los tornillos lejos, y posiblemente se incendie el equipo.

Salu2.

59
Visual Basic 6.0 e inferiores / Re: Enviar Mensajes A Celulares
« en: Viernes 15 de Octubre de 2004, 23:00 »
Hola:

Opinión:  La verdad considero muy difícil lo que planteas, pero hay una opción. En Chile al menos, podemos contratar una casilla de correo que consiste en el número del celular @, nombre de la cía (ej 99999999@entelpcs.cl). Si envías un correo electrónico a esa dirección, llegará directo al aparato celular.
Mandar un correo electrónico común y corriente con Visual me imagino que es un poco más fácil.
Para más claridad: Yo utilizo un servicio parecido que provee yahoo, de acuerdo a algunas condiciones del mail me envía una notificación  a mi celular. Por ejemplo, cuando me llega respuesta a alguna consulta hecha en este foro.

Espero te sirva de algo.

Salu2.

60
Visual Basic 6.0 e inferiores / Re: Crear Instalador
« en: Jueves 7 de Octubre de 2004, 19:29 »
Hola Wilowwill.
En realidad no es tan fácil, pero nada lo es. La gracia del Inno es que es bastante personalizable, GRATIS, y una vez que te creas una plantilla o script te evitas un gran rollo cada vez que quieres empaquetar una aplicación.
Una posibilidad de incluir las ocx necesarias es traducir el archivo lst que genera el empaquetador por defecto de Visual. En la página de Inno hay instrucciones, pero están en inglich (y hacerlo es una lata).
La buena noticia:
En la página 2 de esta misma discusión hay un enlace que incluyó cpmario, a aun programa llamado InnoScript. Es de lo más!
Te crea automáticamente el script necesario para tu aplicación. Si lo bajas, te recomiendo utilizar la opción que utiliza el lst creado previamente con el instalador de Visual. Tiene una opción para crear directamente desde el proyecto, pero se salta muchas librerías que son especiales para la versión en español.

Señor moderador: ¿No cree que esto del empaquetado ya da como para un Sub-foro?

Salu2 a to2.

61
Visual Basic 6.0 e inferiores / Re: Hasta Noviembre
« en: Lunes 4 de Octubre de 2004, 22:21 »
Se echarán de menos tus aportes, pero vamos...
Te lo tienes merecido.

Feliz descanso. :suerte:

62
Visual Basic 6.0 e inferiores / Re: Instalación De Los Ocx
« en: Jueves 30 de Septiembre de 2004, 16:58 »
Hola Tiquinho:
 No te ha ido muy bien con tus post anteriores, es por eso que, a pesar de no ser una eminencia en el tema, y también para saludarte  pues hace tiempo te veo por este foro, me atrevo a dar un par de opiniones:
 El si va a system o system32 dependerá del sistema operativo de la máquina destino (si tiene XP irá a system32).
 Siempre he enviado las librerías a esta carpeta, pues el Inno, así como los otros instaladores que conozco, se preocupan de no sobreescribir las librerías existentes con versiones anteriores. Aún así, no veo inconveniente en que estén en otra; de hecho, cuando una librería no está registrada, la aplicación la buscará en su propio directorio.
  Tengo una duda, y aquí sería buena la opinión de un forero más avezado: Me da la impresión de que si colocas en otra carpeta una librería existente en system, el hecho de registrarla hará que la antigua pase a ser una especie de fantasma.
  En la página de InnoSetup hay información más completa respecto a las librerías 'peligrosas'.

Salu2.

63
Visual Basic 6.0 e inferiores / Re: Como Conectar Access En Red Con Visual 6.0
« en: Miércoles 29 de Septiembre de 2004, 16:31 »
Estimada Señorita:

Primero, en un módulo declaro las variables globales que voy a necesitar:

Código: Text
  1. Global BaseDeDatos as String 'Cadena con el path de la base de datos
  2. Global WsGen As Workspace   'Espacio de trabajo general.
  3. Global BaseGen As Database  'Base de datos general.
  4. Global PwdGen As String
  5.  

En el formulario de inicio, capturo el valor de esas variables:

Código: Text
  1. Private Sub MDIForm_Load()
  2.     Set WsGen = Workspaces(0)
  3.     BaseDeDatos = App.Path & "\Bases.mdb"
  4.     PwdGen = ";pwd="  'Para base sin clave
  5. '    PwdGen = ";pwd=clave01"  'Para base con clave (la clave es 'clave01')
  6. End Sub
  7.  

Luego, el código para cargar la base de datos sería:

Código: Text
  1. Set BaseGen = WsGen.OpenDatabase(BaseDeDatos, False, 0, PwdGen)
  2.  

La instrucción false, indica que se abre en modo compartido. Si quieres abrirla en forma exclusiva debes cambiar ese valor por True.
Nota, también, que basta con cambiar la cadena de BaseDeDatos para que cambie la base de datos utilizada en toda la aplicación.
Por otro lado, al cargar la base en BaseGen, puedo hacerlo sólo una vez en todo el proyecto; sólo la descargo al salir, o para tareas puntuales como compactar.

Cuando necesites abrir un recordset, indicas, por ejemplo:

Código: Text
  1.     Dim Vista As Recordset
  2.     Set Vista = BaseGen.OpenRecordset("Clientes", dbOpenTable)
  3.     Vista.Index = "RutCli"
  4.  

O para un control data:

Código: Text
  1.     Data1.DatabaseName = BaseDeDatos
  2.     Data1.RecordSource = "Select ...
  3.  

Espero te sirva.

Salu2.

64
Visual Basic 6.0 e inferiores / Re: Como Conectar Access En Red Con Visual 6.0
« en: Martes 28 de Septiembre de 2004, 18:32 »
Hola catwoman.

No he tenido grandes conflictos, en general acces se comporta en forma bastante inteligente y sólo se puede dar en un par de casos.
Obviamente, la base de datos no se debe abrir en modo exclusivo.
El conflicto se presenta cuando dos o más usuarios intentan modificar un registro al mismo tiempo. Para evitar esto, vale un par de recomendaciones:
1° No TOMAR el registro por mucho tiempo a la hora de editar. Lo ideal es que captures los cambios en cuadros de texto independientes y luego 'vacíes' la información a la tabla de una sola vez, en una fracción de segundo.
2° Aún así, todavía persiste la posibilidad de que dos usuarios lleguen a editar al mismo tiempo. Sin embargo, este error es interceptable y se puede poner un retardo que funciona más o menos así: Si hay otro usuario modificando, se producirá un error pues el registro está bloqueado, se ejecuta un retardo del siguiente tipo:
Código: Text
  1. for i=0 to 1000
  2.   i=i+1
  3. next i
  4.  
y se vuelve a intentar la modificación.
En la ayuda de visual, en el manejo de errores, hay ejemplos más claros.

En fin, haz la prueba. Si no mantienes el registro abierto por mucho rato al editar, en el 99,999999% de los casos ni siquiera necesitarás del segundo punto.
Respecto a la solución de vincular las tablas desde una base local a la de red, tiene el problema de la dificultad al cambiar la dirección de la base de origen. Por otro lado, aquí puedo estar equivocado, pero me da la impresión que se pierde alguna funcionalidad con el manejo de índices (para usar el método seek, por ejemplo).

Bueno, haz la prueba, lo demás irá saliendo solo.

Salu2.

65
Visual Basic 6.0 e inferiores / Re: Como Conectar Access En Red Con Visual 6.0
« en: Martes 28 de Septiembre de 2004, 16:31 »
Hey, gatúbela.
  Yo estoy en el pasado y trabajo con DAO. El asunto es que he hecho aplicaciones que trabajan en red y no tengo ningún problema con ello. O sea, si ya tienes todo listo, con muy pocos cambios lo puedes echar a andar.
  Lo único que debes cambiar es la ruta del archivo mdb, y eso lo puedes hacer capturando la carpeta en que esté como una unidad, o simplemente indicando una ruta como esta:

\\Deportes\vol1\Bases.mdb

Si capturas la carpeta como unidad, la dirección será una letra de unidad más el nombre de la tabla, por ejemplo: F:\Bases.mdb

Consejo:
  En tu aplicación, no indiques la ruta en cada oportunidad en que accedes a la base de datos. En lugar de ello, utiliza una variable global de tipo string para almacenar este dato. Así, en el formulario principal o de inicio le indicas a la aplicación la ruta que ha de seguir UNA SOLA VEZ.
  Una ventaja espectacular de este método, es que incluso le puedes permitir al usuario indicar la ruta de la base, y almacenar este dato (en un archivo INI, por ejemplo) para los usos posteriores.

Espero servirte de algo.

Salu2. :hola:

66
Visual Basic 6.0 e inferiores / Re: Como Puedo Redimensinar Una Imagen
« en: Lunes 27 de Septiembre de 2004, 23:15 »
Hola, MindEye.

Hace un tiempo estuve jugando con un código que contempla esta dificultad. Considera además la posibilidad de que las fotografías tengan distintas proporciones.
Lo puedes bajar desde la siguiente discusión:

http://foros.solocodigo.com/index.php?showtopic=9214&hl=

Espero y te sirva. Por lo menos te puede servir de inspiración para hacer algo mejor.

Salu2.

67
Visual Basic 6.0 e inferiores / Re: Uso Del Dbcombo...
« en: Viernes 24 de Septiembre de 2004, 23:04 »
Je, je.   :losiento:

Y se lee con boundtext...

Mil disculpas.

dbcombo

Trataré de mantener un poco más abiertos los ojos y la boca más cerrada.

Nos vemos.  :adios:

68
Visual Basic 6.0 e inferiores / Re: Uso Del Dbcombo...
« en: Viernes 24 de Septiembre de 2004, 17:04 »
Ok Jesús, ahora sé a qué te refieres, pero te tengo malas noticias.

Efectivamente el dbcombo de visual es distinto al de Acces. En él sólo puedes mostrar o capturar un campo y lo que pretendes no es posible.
Ignoro si existe otro control que tenga esta facultad (siempre lo hay, busca en la red), pero no es el dbcombo.
En todo caso, siempre se puede hacer alguna chapucería. Hace un tiempo, lo que hice fue cargar un combo común y corriente con el nombre del fulano, luego una gran cantidad de caracteres espacio, y al final el Id. Cuando seleccionaba un item, lo que hacía era leer el final de la cadena.
También puedes hacer algo con un flexgrid, o dbgrid... En fin.

Lo siento.

69
Visual Basic 6.0 e inferiores / Re: Añadir Reports De Crystal A Paquete De Instalacion
« en: Viernes 24 de Septiembre de 2004, 00:55 »
Hola, Berze.

Te recomiendo dar una mirada en el siguiente link, hay de un todo.

Discusión anterior

 :hola:

70
Visual Basic 6.0 e inferiores / Re: Uso Del Dbcombo...
« en: Viernes 24 de Septiembre de 2004, 00:18 »
?????????!!! :huh:

Hola.
He jugado mucho con combos en Visual, quizá si te explicas un poco te pueda ayudar. No logro entender a qué te refieres con 'capturar otro'.

Salu2

71
Visual Basic 6.0 e inferiores / Re: Bloqueo De Registros
« en: Viernes 24 de Septiembre de 2004, 00:10 »
Ok... Es que yo estoy en el pasado... Uso DAO.
Efectivamente cuando intenté con ADO me volví loco buscando el comando Edit; je, je.
Lo que hago es ir al registro y editarlo (al tiempo que leo el número). Mientras lo estoy editando, que es una fracción de segundo, el registro permanece bloqueado, lo que hace que otra máquina que intente lo mismo reciba un error interceptable.
El manejo de error a que me refiero más arriba, permite a la máquina intentar nuevamente el cambio, entonces el registro ya estará desbloqueado y con el número ya actualizado.
Ahora bien, eso es en DAO, en donde el registro se bloquea automáticamente cuando recibe la instrucción edit. Me imagino que en ADO debe existir la posibilidad de realizar un manejo similar.

Suerte.

72
Visual Basic 6.0 e inferiores / Re: Bloqueo De Registros
« en: Jueves 23 de Septiembre de 2004, 23:35 »
Hola, Juan.

Tengo un par de dudas: ¿De dónde sacas el número de la venta? ¿En que momento se produce el error?
Te lo pregunto porque realmente no veo que el problema esté al añadir registros. Yo tengo un sistema similar en donde el número de factura está en una tabla de la base de datos. Cuando se realiza una venta, voy a esa tabla, tomo el número actual para el documento y lo incremento en uno para la nueva venta.
Es en esta tabla donde se debe controlar un posible error por encontrar el registro bloqueado (debo usar 'edit' para incrementar el número). En caso de error, puedes colocar un simple retardo como el siguiente:

Código: Text
  1. for i=0 to 1000
  2.   i=i+1
  3. next i
  4.  

y luego vuelves a intentarlo con la instrucción resume.

Ahí nos cuentas.

Salu2.

73
Visual Basic 6.0 e inferiores / Re: Mostrar Un Formulario A Partir De Un String
« en: Martes 21 de Septiembre de 2004, 16:23 »
Por favor Nostromo, ilumínanos con tu sabiduría!!

He seguido esta consulta y la verdad es que no visualizo la respuesta. Sería un gran alivio para mí el que la publicaras en forma un poco más explícita, pues por tu forma enigmática de redactar, me recuerdas a tu casi homónimo Nostradamus.

Esperamos. :whistling:

74
Visual Basic 6.0 e inferiores / Re: Cambiar El Punto Por La Coma En Visual
« en: Lunes 13 de Septiembre de 2004, 16:38 »
Hola, avaguin. Bienvenido!

El consejo de José es lo que esperas. Pero creo que puedo aportar un poco.
El problema de hacerlo así, es que queda "fija" la restricción que cambia el "." por ",". Eso te dará error cuando corras la aplicación en una máquina en la que efectivamente el 'punto' sea el separador de decimales.

¿Solución?
 Creas una variable global (en algún modulo), a la que llamaremos sDec, que es del tipo string y guardará el separador decimal del sistema.

Código: Text
  1. Global sDec as String
  2.  

Luego, en el formulario principal, (en el evento form_load, por ejemplo) te encargas de averiguar cual es el separador decimal de la máquina y lo guardas en la variable. Para ello, dividiremos 10 en 3, y presentaremos el resultado en formato decimal. Eso dará "3.33" ó "3,33" dependiendo de la configuración del sistema, lo que nos permitirá descubrir el formato usado.

Código: Text
  1.  
  2.     'Detectar caracter decimal
  3.     stmp = Format$(10 / 3, "##.00")
  4.     If InStr(stmp, ".") Then
  5.         SdeC = "."
  6.     ElseIf InStr(stmp, ",") Then
  7.         SdeC = ","
  8.     End If
  9.   
  10.  

Esta variable la podrás llamar, luego, desde cualquier lugar en la aplicación.


Luego, cuando y donde quieras aplicar el cambio, introduces el siguiente código. En el ejemplo, es un cuadro de texto llamado text1.

Código: Text
  1. Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
  2.         Select Case KeyAscii
  3.         Case Asc("."), Asc(",")
  4.             KeyAscii = Asc(SdeC)
  5.         End Select
  6. end sub
  7.  

Si te fijas, no importa cual sea la configuración del sistema, ni de si tu presionas ',' o '.', siempre te dará el caracter decimal válido.

Espero te ayude.

Salu2. :hola:

75
Visual Basic 6.0 e inferiores / Re: Error De Tipos
« en: Viernes 10 de Septiembre de 2004, 16:18 »
Un pequeño aporte:
Me parece que se está pasando por alto un punto muy relevante, y que en su momento me tuvo de cabeza.:brickwall:
El asunto es que en una instrucción SQL el formato de fecha, además de ir entre alfombrillas (#), DEBE se el formato gringo; es decir "mm/dd/yy" (mes/día/año). Si utilizas otro no dará los resultados que esperas.

Luego, una forma de asegurarnos que todo esté correcto es:


Código: Text
  1.   inicial= "#" & format(txtFechaInicial.Text, "mm/dd/yy") & "#"
  2.   final= "#" & format(txtFechafinal.text, "mm/dd/yy") & "#"
  3.  

Espero ser de ayuda.

Salu2. :hola:

Páginas: 1 2 [3] 4 5 ... 9