elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación Visual Basic / Re: Objeto requerido en: 20 Julio 2020, 15:54 pm
Estuve viendo un poco mas y ahora me muestra cual es el objeto que falta "Excel.Sheet.12" pero no se desde donde cargarlo! No se si es una referencia o un componente, ya que tambien tengo "Excel.sheet.8" y se carga agregando un componente, pero el Excel.Sheet.12 no se desde donde agregarlo!!
2  Programación / Programación Visual Basic / Objeto requerido en: 18 Julio 2020, 00:17 am
Buenas tardes.

Les comento brevemente lo que sucede, es la primera vez que me pasa y no encuentro explicacion ni el porque.

Resuelta que si ejecuto y compilo mi proyecto desde el codigo, lo hace perfectamente. Ahora, una vez compilado, al ejecutarlo me da el error "Objeto requerido", antes de abrir.

Probe de todo y nada. SI pueden darme una mano, mas que agradecido.

Saludos!

3  Programación / Programación Visual Basic / Re: Dividir string en cadenas (Visual Basic 6) en: 19 Diciembre 2019, 18:52 pm
Hola!

Puedes usar split para partir el string en una matriz dinamica de strings.

Por ejemplo:

Código
  1. 'Matriz dinamica para almacenar los datos con Split
  2. Dim datos() As String
  3. Dim i as Integer
  4.  
  5. datos = Split("dato1, dato2, dato3, dato4", ",")
  6.  
  7. ' Luego accedes a cada dato usando un sibindice
  8.  
  9. For i = LBound(datos) To UBound(datos)
  10.    MsgBox datos(i)  
  11. Next
  12.  


Refs:
https://www.oreilly.com/library/view/vb-vba/1565923588/1565923588_ch07-2024-fm2xml.html
En VBA es identico el uso, asi que la ref vale para VB6: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/split-function

Saludos!


Muchisimaaaasss gracias!!!! !!
4  Programación / Programación Visual Basic / Dividir string en cadenas (Visual Basic 6) en: 19 Diciembre 2019, 16:53 pm
Hola!

Tengo una variable string de 4 elementos cuyo valor es (ejemplo):

xVariable = "dato1, dato2, dato3, dato4"

Como puedo dividir a la misma para que me queden 4 variables con los valores:

xDato1 = "dato1"
xDato2 = "dato2"
xDato3 = "dato3"
xDato4 = "dato4"

Muchas gracias desde ya!!
5  Programación / Programación Visual Basic / Re: No guarda los cambios? en: 18 Diciembre 2019, 20:29 pm
Muchas gracias por todo NEBIRE, al final termine dándome cuenta que el error era mio... Este formulario se comparte entre dos proyectos (no lo sabia pues no arme yo todo esto y lo voy conociendo día a día), entonces estaba realizando los cambios pero compilando el proyecto equivocado...

En cuanto a todos tus consejos, voy a tenerlos muy en cuenta, como te decía, este sistema lo estoy conociendo ya que hace poco trabajo con el y también, muchas veces, se me hace bastante engorroso poder entenderlo, como así también los nombres de variables y demás.

Decime como hago para poner puntuación, ya que mereces lo mejor por el tiempo que me has dedicado y los consejos brindados.

Muchísimas gracias!!
6  Programación / Programación Visual Basic / Re: No guarda los cambios? en: 17 Diciembre 2019, 12:23 pm
Pués al margen de todo, el label funciona perfectamente lo mismo que el picturebox (no es un control image, pese a que el nombre así lo haga creer a primera vista).

He eliminado o comentado el código prescindible o cuya funcionalidad está ausente, para poder centrarme en ambos aspectos, y cuando está en ejecución sea en diseño o compilado funciona correctamente... Adjunto imágenes.



Un botón al efecto, para cambiar el texto del label y hacer visible el picturebox (yo renombre el llabel, eso de label33(0) no es procedente).




Otro botón vuelve a cambiar el texto del label y oculta la imagen:




Ejecutado desde tu propio código, también se comporta como s espera (claro que yo tenía eliminado o comentado la funcinalidad ausente): Esto es, debajo se dan indicaciones al caso...


Así que solo resta pensar que no sucede lo que esperas, porque no llega a ejecutarse. En mi caso gracias al código comentado o eliminado tal posibilidad no se da (ni puede darse). Para que pudiera darse tendría que tener el proyecto completo y así tener todo activo, sin eliminar ni cmentar nada, sin funcionalidad ni dependencias ausentes...

Así que lo que habría que hacer es cerciorarse de si es así o no...

Mirando la funcionalidad del evento click del textbox 'osocial', se aprecian dos puntos de salida del método antes de llegar a las instrucciones que visibilizan el picturebox.
Luego procede poner código de control que nos aclare (una vez compilado) si se ejecuta o no...

1: añadimos un msgbox al comienzo de la función, dentro del primer condicional antes del 'exist sub'...
Código
  1. Private Sub osocial_Click()
  2.    Dim bolOSIVASegunPaciente As Boolean
  3.    Dim bolPacienteIVASI As Boolean
  4.    Dim bolOSIVASI As Boolean
  5.  
  6.    If (osocial.Tag = "X" Or IdOSocial = Me.osocial.ItemData(Me.osocial.ListIndex)) And Es_Alta = False Then
  7.        msgbox "Estoy saliendo de 'osocial'... no esperes que se vea la imagen (punto: 1)"
  8.        Exit Sub
  9.    end if
  10.   '...
  11.  

2: Añadimos otro msgbox, un poco más abajo (también dentro de otro condicional)...
Código
  1.    If ((num(Me.idpaciente, 0) = 0) Or (IdOSocial = 0)) Then
  2.        msgbox "Estoy saliendo de 'osocial'... no esperes que se vea la imagen (punto: 2)"
  3.        Exit Sub
  4.    End If
  5.  
  6.  

3: Si pasa de dichos puntos (esto es, si sigue en la función), vemos si todavía se ejecuta la parte que visibiliza la imagen...
Código
  1. If nonul(osocial.Text) <> Buscar_Datos("select osocial.nombre from osocial, paciente where osocial.numero = paciente.osocial and paciente.numero = " & nropa) Then
  2.        bolOSIVASI = esVer(bd("siniva", "paciente_osocial", "idpaciente = " & nropa))
  3.        bolOSIVASegunPaciente = False
  4.        imgWarning.Visible = True
  5.        msgbox "La imagen debe aparecer..."
  6.    Else
  7.        nroafiliado = nonul(bd("afiliado", "paciente", "numero =" & nropa))
  8.        imgWarning.Visible = False
  9.        msgbox "La imagen no aparecerá y si antes se veía ahora se oculta..."
  10.        bolOSIVASI = esVer(bd("siniva", "osocial", "nombre = " & nonul(osocial.Text)))
  11.    End If
  12.  

Ahora compila (provisionalmente), con esos msgbox... y ejecútalo para ver si se sale de la función o no, y si no sale si se da el condicional que muestra el picturebox o no...
Si se sale, ya tendrás que mirar esos condicionales al detalle que lo sacan de la fnción....

Un error grave en dicha funcionalidad es desentenderse de los errores... cuando haces:
Código
  1.    On Error Resume Next
  2.    IdOSocial = Me.osocial.ItemData(Me.osocial.ListIndex)
  3.    On Error GoTo 0
  4.    '...
Básicamente le estás diciendo que te da igual lo que suceda, así que pueden suceder situaciones incontroladas y por tanto no ser conducido por el código sino por un cúmulo de estados fuera de control, luego es normal que antes un error pueda haber algún comportamiento inesperado.
Ceder antes los errores es perder el control del código.

Lo mínimo antes un error es reportasr su código y exponer su mensaje, y en modo debug parar ahí la ejecución para ver de arreglarlo ó entenderlo y dar una respuesta adecuada distinta de: 'sigue como si nada hubiera pasado'...

Código
  1.    On Error Resume Next
  2. Private Sub osocial_Click()
  3.    Dim bolOSIVASegunPaciente As Boolean
  4.    Dim bolPacienteIVASI As Boolean
  5.    Dim bolOSIVASI As Boolean
  6.  
  7.    On Error goto ControlarErrores
  8.    ...
  9.    IdOSocial = Me.osocial.ItemData(Me.osocial.ListIndex)
  10.  
  11.    '...
  12.    exit sub
  13.  
  14. ControlarErrores:
  15.    msgbox "se ha producido un error no controlado: " & cstr( err.number) & vbcrlf & err.message
  16.    err.clear
  17.    stop ' <----- para continuar paso a paso con 'F8' y ver el punto donde se produjo el error. Comprobar valore esperados, los recibidos o calculados, etc...
  18.  
  19.    resume next
  20. End sub
  21.  

...para terminar, como comentario final (al margen de errores)...
- El código es bastante espagueti, la interfaz está recargada, lo que hará que cualquiera que se enfrente a ella 'la tema', pués sentirá que necesitará al menos 6 meses para entenderla por encima. Deberías hacerlo más intuitiva... separando la mayoría de la interfaz delegando a varias ventanas con sendos botones que abran dichas ventanas y se rellenen los datos (sea automática o manualmente por parte del usuario) y luego pueda cancelar o aceptar. Eso haría también que la carga del formulario fuera más fluída y la interfaz asequible, pués cada ventana trataría un aspecto en exclusiva, luego se autoexplica por e título de la misma. - Al tiempo falta ayuda en los Tooltiptext, que faciliten al usuario saber que leches debe poner o para que sirve algo específico...
- Tratas demasiados eventos 'lostfocus', y en todo caso tratándose de datos debería ser el evento 'validate', en otros controles no está justificado... tampoco tiene mucho sentido estar alternando el valor de la propiedad 'KeyPreview',
- Por último los nombres son a menudo desacertados (por no decir inentiligibles)...  algo como: 'bolOSIVASI', nadie más que tú tiene forma de saber que es 'OSIVASI', podría ser el nombre de una empresa, de un reglamento, ley o simplemente una conjunción (mal formada) de 2 o 3 palabras (bien formada solo la primera letra de cada palabra sería mayúscula)... ninguna de ellas debería ser el nombre de una variable, en todo caso 'bolEmpresa' (sin importar como rayos se llame la empresa), 'bolReglamento' (sin importar como se llame el dichoso relgamento, aunque tampoco sobran 2 ó 3 letras finales (así: bolReglamentoOSI'), 'bolSiLlevaIVA'...
- Aunque hay algunas fuentes que recomiendan precerder el nombre de una variable por letras o siglas del tipo, yo lo suelo dejar para los objetos, que no hay forma de entender de que se trata, para los tipos primarios, su nombre debe ser tan descriptivo que baste: 'Indice', 'Cantidad', 'Edad' ya sugieren que son numéricos. 'Masculino', 'Activo', 'Visible' ya sugieren que son buleanos. 'TipoSexo', 'DiaDeLaSemana' ya sugieren que son valores enumerado. 'Nombre', 'Ciudad' ya sugiere que se trata de strings... etc...
- Un picturebox, es un control 'caro' en cuanto a recursos, para mostrar una simple  imagen tipo icono es preferible usar un control image (que además con su propiedad Stretch a TRUE, peromite ajustar la imagen a las medidas del control.


NEBIRE, te agradezco muchisimo el tiempo que te has tomado para ver este problema.
Hemos tenido unos dias bastantes agitados en el trabajo por lo que aun no he podido realizar las pruebas que me indicaste.

Apenas pueda, entre hoy y mañana seguramente, podre ver bien, con tiempo y tranquilidad, tus comentarios.

Te comento luego como me ha ido.

Muchas gracias nuevamente!
7  Programación / Programación Visual Basic / Re: No guarda los cambios? en: 13 Diciembre 2019, 19:02 pm
Por lo pronto te envío los archivos ya que durante el fin de semana no tengo accesos a ellos.

La imagen en cuestión había un error, debe mostrarse u ocultarse, ya esta reparada esa linea.

Mas allá de la imagen que no se muestra, tampoco realiza lo que le indico en osocial_click.txt (señalado con flechas).

Te agradezco muchisimo.

https://mega.nz/#!0mgVAIzT!aIfm5l9lfisZMq8MSM845qeHi_PDJDr8d8h0O4tSXh8
8  Programación / Programación Visual Basic / Re: No guarda los cambios? en: 13 Diciembre 2019, 17:05 pm
Perdon! Pense que se iba a entender..

LEER PRIMERO.txt especifica eso que me pedis.

codigo, codigo2, ejecutable y ejecutable2 son imagenes de ejemplos.

carga_medica.txt es el codigo de ese formulario y osocial_click.txt es el evento donde quiero realizar los cambios que no me toma...

1- LEER PRIMERO.txt
2- codigo.png
3- ejecutable.png
4 - codigo2.png
5- ejecutable2.png
6- carga_medica.txt
7- osocial_click.txt
9  Programación / Programación Visual Basic / Re: No guarda los cambios? en: 13 Diciembre 2019, 15:24 pm
En casi todas partes es lo mismo... pegar el texto o pegar un enlace a un archivo comprimido:

- Si el texto es corto, puedes volcarlo directamente en el foro, metido entre etiqeutas GeSHI (cuando escribes un mensaje en el encabezado encima de la caja donde escribes está la ayuda a la edición a la derecha un bombo con diferentes lenguajes de programación, eliges VB (a secas), y luego pegas el código dentro del par de etiquetas...

- Si el texto es largo, o si requiere mirar propiedades de los objetos o del proyecto (que razonablemente podría ser el caso), entonces es mejor que comprimas los archivos que componen el proyecto, y lo subas a una página de descarga, luego simplemente pega aquí el enlace de descarga...


Barbaro! Aca adjunto el archivo con dos casos (Un ejemplo y el caso que necesito realizar) Hay imagenes y txt con los codigos.

Muchas gracias desde ya!!

https://mega.nz/#!JiYAxA4Y!pONFK13sCUnevJI3rzqsMpop4tsA4sgk7sFuF2FhQlI
10  Programación / Programación Visual Basic / Re: No guarda los cambios? en: 12 Diciembre 2019, 21:01 pm
Hola NEBIRE!

Gracias por responder..

Los cambios los reverti pensando que podria haber algun error en el codigo (por lo menos yo no me doy cuenta ni lo veo), pero de todas formas, tampoco me compila, por ejemplo, si cambio un texto de un txt.

Soy nuevo en este foro y no veo donde puedo adjuntarte un archivo con el codigo en cuestion...
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines