• Martes 13 de Mayo de 2025, 23:42

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

Páginas: 1 ... 24 25 [26] 27 28 ... 43
626
Visual Basic 6.0 e inferiores / Re: Transacciones
« en: Lunes 2 de Febrero de 2004, 11:49 »
Si enumeras las propiedades de un objeto ADODB.Connection usando un proveedor Jet, verás que cuenta con la propiedad Transaction DDL lo cual indicaría que el proveedor soporta transacciones...

Incluso con DAO y bases de datos jet, la propiedad Transactions de un recordset para cursores Dynaset o tabla,  es True, lo que indica que sí se admiten transacciones...

627
Visual Basic 6.0 e inferiores / Re: Imprimir Una Lineas En Colores...
« en: Lunes 2 de Febrero de 2004, 11:23 »
Hola MindEye.

Utiliza la propiedad ForeColor del objeto printer:
.
.
.
Printer.ForeColor = vbYellow
Printer.Print "Texto amarillo"
Printer.ForeColor = vbRed
Printer.Print "Texto rojo"
.
.
.
Abur.

628
Visual Basic 6.0 e inferiores / Re: Ejecutar Comandos De Ms-dos
« en: Viernes 30 de Enero de 2004, 14:15 »
Hola Rober.29.

Con Shell sin más también vale, a no ser que necesites ejecutar el registro de forma síncrona, claro, en cuyo caso la filosofía a seguir es la del ejemplo.

Seguramente te interese ejecutar regsvr32 con el modificador /S para evitar el mensaje.

Échale un vistazo http://foros.solocodigo.com/index.php?showtopic=4489 que a lo mejor te interesa.

Chao.

629
Visual Basic 6.0 e inferiores / Re: Transacciones
« en: Viernes 30 de Enero de 2004, 09:08 »
Hola eli_moran.

Para mi, desde luego que utilizar recordsets es lo suyo...

Chao.

630
Visual Basic 6.0 e inferiores / Re: Transacciones
« en: Jueves 29 de Enero de 2004, 17:59 »
Hola eli.

Deberás usar el adecuado valor de bloqueo para el cursor asociado al recordset abierto. Si usas ADO, un valor adLockPessimistic bloquea el registro actual una vez que se invoca el método Edit. un valor adLockOptimistic bloqueará sólamente cuando se usa el método Update, el valor adReadOnly abrirá el cursor como de sólo lectura.

Chao.

631
Visual Basic 6.0 e inferiores / Re: Msflexgrid A Excel (commandbutton)
« en: Jueves 29 de Enero de 2004, 16:33 »
Hola rechy.

Usa algo de este estilo:

Código: Text
  1.  
  2. Private Sub Command1_Click()
  3.    
  4.     On Error GoTo Err_XLS
  5.    
  6.     Dim objApp As Object
  7.     Dim objWb As Object
  8.     Dim objSh As Object
  9.     Dim lngR As Long, lngC As Long
  10.    
  11.     Set objApp = CreateObject("Excel.Application")
  12.     Set objWb = objApp.WorkBooks.Add
  13.     Set objSh = objWb.ActiveSheet
  14.    
  15.     For lngR = 0 To MSFlexGrid1.Rows - 1
  16.         For lngC = 0 To MSFlexGrid1.Cols - 1
  17.             objSh.Cells(lngR + 1, lngC + 1) = _
  18.             MsFlexGrid1.TextMatrix(lngR, lngC)
  19.         Next lngC
  20.     Next lngR
  21.        
  22.     objWb.SaveCopyAs "c:\ruta\nombre.xls"
  23.     objWb.Saved = True
  24.  
  25. Exit_XLS:
  26.     On Local Error Resume Next
  27.     objApp.Close
  28.     objApp.Quit
  29.     Set objSh = Nothing
  30.     Set objWb = Nothing
  31.     Set objApp = Nothing
  32.     Exit Sub
  33.  
  34. Err_XLS:
  35.     MsgBox "(" & Err.Number & ") " & Err.Description, vbCritical, "Xls"
  36.     Resume Exit_XLS
  37.    
  38. End Sub
  39.  
  40.  

Abur.

632
Visual Basic 6.0 e inferiores / Re: Error De Instalacion
« en: Jueves 29 de Enero de 2004, 16:11 »
Ok. Muchas gracias por la info.

Chao.

633
Visual Basic 6.0 e inferiores / Re: Grillas
« en: Jueves 29 de Enero de 2004, 16:09 »
Hola eli_moran.

Podrías utilizar un control DataGrid para modificar valores sobre la rejilla, o utilizar un FlexGrid, o incluso un ListView1 (vista lvwReport) para mostrar registros, editando/añadiendo los valores de los campos sobre textbox.

Abur.

634
Visual Basic 6.0 e inferiores / Re: Error De Instalacion
« en: Jueves 29 de Enero de 2004, 14:49 »
Hola javirues.

Más de una vez me ha pasado eso mismo... unas veces al reiniciar la instalación continua correctamente, otras aparece el mismo mensaje hasta el aburrimiento. Las veces que me ha ocurrido esto último, siempre he acabado la instalación a mano (pues a pesar del mensaje, MSVMVB60.DLL queda instalada, que es lo que me suele importar... por suerte, a partir de w2000, este runtime viene con el propio s.o).

Las veces que me he visto en esta situación, he tenido la suerte de poder instalar yo mismo el programa que distribuía, con lo cual este tipo de problemas los solucione a mano personalmente o como mucho por teléfono.

La gente suele echar pestes contra el instalador que trae vb, de hecho, hay otros instaladores por ahí pululando: muchos hablan muy bien de SetUp Factory, aunque yo no lo conozco...

Para evitar todas  estas cosas, suelo crear mi propio programa de instalación, de todas formas, no estaría nada mal saber por qué ox pasan estas historias y qué solución tienen.

Suerte.

Suerte.

635
Visual Basic 6.0 e inferiores / Re: Abm
« en: Jueves 29 de Enero de 2004, 09:19 »
Hola eli.

Lo principal para hacer una buena aplicación de este estilo es tener una base de datos bien diseñada. El motor que elijas ya es cosa tuya y de los medios de los que dispongas. Mediante ADO puedes tener acceso a datos en cualquier bd que suministre un proveedor de acceso a datos OleDb. SQL es para mi la herramienta más cómoda y funcional para atacar la bd.

Para crear la aplicación en vb, sin duda tendrás que usar controles textbox, labels, comandbutton, tal vez algún tipo de rejilla, picturebox, ... vamos, lo típico. La apariencia y distribución de los controles, ya es cosa del arte y gusto de cada uno... , poco tiene que ver con la programación en si y muchas veces puede ser lo que dé a tu aplicación un toque atractivo para el usuario, (en ocasiones y según que usuario más que la propia eficacia de la aplicación).

Para realizar mantenimientos de tablas  (altas, bajas, modis, consulta), suelo utilizar una misma vista de la ventana en la que hago que los controles para introducir datos cambien su estado a bloqueado o no bloqueado según el valor de algún indicador, que también valdrá para comprobar que acción hay que tomar  (INSERT, UPDATE, DELETE)  cuando los datos son confirmados/validados.
Lo que comentas de los tabs puede estar bien, pero claro está, utilizando los mismos controles para cualquier tab seleccionada y el valor de la clave como indicador de la acción.

En fin... un tema muy general para tratar en un post.

Suerte.

636
Hola ebolo.

Efectivamente, tienes toda la razón... la variable está declarada como indAllowMinimize.

Chao.

637
Visual Basic 6.0 e inferiores / Re: Printer.width Es Ancho Físico O Area Imprimible
« en: Miércoles 28 de Enero de 2004, 15:21 »
Hola nestor q

Efectivamente, como tú dices, Width devuelve o establece el tamaño del Ancho de papel actual para la impresora y ScaleWidth el ancho imprimible, de igual forma que ScaleWidth aplicada a un MdiForm, que devuelve el ancho no ocupado por controles PictureBox (o alineables, supongo) en el MdiForm.

La mayoría de las impresoras dejan un margen no imprimible (independientemente del margen que tú estés usando) a los lados del papel, si bien en algunas es posible definir un valor (edge to edge) que indica a la impresora que imprima desde un borde hasta otro del papel. En caso de que la impresora pintase 'edge to edge' los valores para Width y ScaleWidth coincidirían.

Otra causa de truncamiento, evidente, podría ser que el papel cargado en la impresora fuera de menor ancho que el configurado... pero está claro que este no es tu caso.

Suerte.

638
Visual Basic 6.0 e inferiores / Re: Podedr Mnimozar Cuando Quiera Y Cuando Quiera No
« en: Miércoles 28 de Enero de 2004, 15:11 »
Más fácil:

Código: Text
  1.  
  2. Private indAllowMinimize as boolean
  3. Private intWindowState as integer
  4.  
  5. Private Sub Form_Load
  6.     Comman1.Caption = "Permir minimizar"
  7. End Sub
  8.  
  9. Private Sub Command1_Click
  10.    IndAllowMinimize = Not indAllowMinimize
  11.    If indAllowMinimize Then
  12.         Command1.Caption = "No permitir minimizar"
  13.    Else
  14.         Command1.Caption = "Permitir minimizar"
  15.         intWindowState = 0
  16.    End If
  17. End Sub
  18.  
  19. Private Sub Form_Resize()
  20.    If Me.WindowState = 1 And Not indAllowResize Then
  21.       Me.WindowState = intWindowState
  22.    Else
  23.       intWindowState = Me.WindowState
  24.    End If
  25. End Sub
  26.  
  27.  
  28.  

Suerte.

639
Visual Basic 6.0 e inferiores / Re: Como Duplicar Un Combo Entre Formularios
« en: Martes 27 de Enero de 2004, 17:15 »
Otra forma que se me ocurre es utilizar sólo un formulario: algo así como juntar los dos formularios en uno con los controles de los dos, tal vez agrupados en frames, y según lo necesites, al cambiar alguna propiedad redimensionar, hacer visible o invisible, etc...

Tal vez en tú caso no merece la pena ponerse a hacer algo así, ya que diseñar un formulario de esta forma es un asunto algo engorroso aunque sencillo (aparte del coste en memoria que podría suponer tener un formulario excesivamente cargado de controles, y más si sólo se van a utilizar muy ocasionalmente).

También podrías pasar al segundo formulario el recordset que contiene los datos del primer combo...

Por lo pronto, ni conozco, ni se me ocurren otras formas de hacer lo que pretendes, a ver si alguién aporta más...

Suerte.

640
Visual Basic 6.0 e inferiores / Re: Como Duplicar Un Combo Entre Formularios
« en: Martes 27 de Enero de 2004, 14:45 »
Hola mosaic04.

Haz referencia al combo del primer formulario como a otro miembro cualquiera del formulario:

Imagina un formulario (en el ejemplo Form1) que contiene el combo en cuestion (en el ej. Combo1). Cargarás los datos de Form1.Combo1 en un combo (Combo1) en otro formulario (Form2).
Código: Text
  1.  
  2. .
  3. .
  4. .
  5. Combo1.Clear
  6. Dim lng1 as Long
  7. for lng1 = 0 To Form1.Combo1.ListCount - 1
  8.      Combo1.AddItem Form1.Combo1.List(lng1)
  9. next lng1
  10. Combo1.ListIndex = Form1.Combo1.ListIndex
  11. .
  12. .
  13. .
  14.  
  15.  

Suerte.

641
Hola.

Ten en cuenta que si en alguno de los controles contenidos en el formulario, tienes código para el mismo evento que en el formulario (me explico: en el mismo form tienes definido el evento KeyPress, por ejemplo, para el form y para otro control), siempre se desencadenará el evento del control antes que el del formulario a no ser que establezcas la propiedad del formulario KeyPreview=True.

Abur.

642
Visual Basic 6.0 e inferiores / Re: Imprimir Una Matrix 20x8 En Un Archivo
« en: Martes 27 de Enero de 2004, 09:41 »
Hola ahmolina.

Prueba con un código de este estilo:

Código: Text
  1.  
  2. Private Sub Command1_Click()
  3.  
  4.     On Error GoTo Err_Command1_Click
  5.    
  6.     Dim intCanal As Integer
  7.     intCanal = FreeFile
  8.  
  9.     Open "c:\Borrar\Archivo.txt" For Output As intCanal
  10.  
  11.     Dim int1 As Integer
  12.     For int1 = 0 To 9
  13.         Print #intCanal, Matriz(int1, 0), Matriz(int1, 1) _
  14.         , Matriz(int1, 2), Matriz(int1, 3), Matriz(int1, 4) _
  15.         , Matriz(int1, 5), Matriz(int1, 6), Matriz(int1, 7)
  16.     Next int1
  17.  
  18. Exit_Command1_Click:
  19.     On Local Error Resume Next
  20.     Close #intCanal
  21.     Exit Sub
  22.    
  23. Err_Command1_Click:
  24.     MsgBox Err.Description, vbCritical
  25.     Resume Exit_Command1_Click
  26.    
  27. End Sub
  28.  
  29.  

En lugar de Print #canal, podrías utilizar Write para dar más consistencia a los datos: se usaría ; como delimitador de valores, y el tipo de datos de cada campo y su formato quedaría reflejado claramente y de forma estándard (textos delimitados por comillas dobles, números con coma como separador decimal , valores especiales entre almoadillas...).

Suerte.

643
Visual Basic 6.0 e inferiores / Re: Informe de Access con Visual?
« en: Martes 27 de Enero de 2004, 09:16 »
En este código no es necesario agregar referencia de ningún tipo.

Con Set dbW = GetObject(App.Path & "\Tiradentes2.mdb") obtenemos la referencia necesaria a la base de datos (si es que existe, claro) en el objeto dbW, si la base de datos no está abierta, se crea una nueva instancia de la aplicación. Las variables de objeto están declaradas como object.
El 'CreateObject' y el 'OpenCurrentDatabase' sobran...

El código original esta probado satisfactoriamente con access97, pero recuerdo que a Gerard no se le abría la vista previa del informe (no sé como
lo solucionó al final), usaba wXp.

El bucle que comprueba si en los informes abiertos de la bd ya existe uno con igual nombre del que deseamos abrir, es necesario para el correcto funcionamiento del filtro (El valor de dbW.Reports.Count no indica el número de informes en la bd, como pudiera parecer, sino que muestra el número de informes abiertos en ese momento).

Loco:
referente a que no te funcione el SQL que indicas, te diré que es lógico...
Prueba una sentencia como esta:
Código: Text
  1.  
  2. SELECT * FROM PERSONAL
  3. WHERE Month([Fecha Nacimiento]) = 9
  4.  
  5.  
El uso que haces del carácter comodín % es incorrecto, en todo caso debería ser algo así como:
Código: Text
  1.  
  2. SELECT * FROM PERSONAL
  3. WHERE [Fecha Nacimiento] like '%/09/%'
  4.  
  5.  

El funcionamiento de los parámetros que se hubieran definido en la consulta o en el filtro del informe también está comprobado con access97.

Abur.

644
Visual Basic 6.0 e inferiores / Re: Busqueda En Grid
« en: Lunes 26 de Enero de 2004, 17:21 »
Hola MestreZero.

No comprendo muy bien qué es lo que pretendes (no sé donde quieres escribir ni donde que se te muestren los resultados, ¿tal vez escribir en un combo y el resultado en un grid?).

A lo mejor puedes conseguir lo que necesitas fácilmente con un control combo de Microsoft Forms 2.0 que es el típico combo de los que se usan en access y permite varias columnas...

Tampoco comprendo cuando dices que no es posible tener un combo ordenado. Prueba estableciendo la propiedad Sorted=True.

Intenta ser algo más concreto.

Chao.

645
Visual Basic 6.0 e inferiores / Re: Picture Y El Truncamiento De Texto
« en: Lunes 26 de Enero de 2004, 17:14 »
Hola de nuevo nestor g.

Debes modificar el tamaño del PictureBox para ajustarlo al tamaño de la página que piensas imprimir (recuerda también establecer la propiedad AutoRedraw=True).

Como me resulta complicado de explicar, mejor te adjunto un ejemplo que acabo antes.

Abur.

646
Visual Basic 6.0 e inferiores / Re: Combinar Con Word Desde Visual
« en: Lunes 26 de Enero de 2004, 16:01 »
Hola pacegar.

Empieza por añadir al proyecto la correspondiente referencia a Word (también podrías utilizar CreateObject / GetObject)... luego examinador de objetos y a investigar.

Básicamente supongo que se tratará de obtener una referencia a un objeto Document, utilizar el método Add de su miembro Tables para añadir una nueva tabla y a partir de ahí, rellenar los datos de la tabla, supongo que mediante un objeto de tipo Range, esto último nunca lo he probado, pero imagino que por ahí van los tiros.

Suerte.

647
Visual Basic 6.0 e inferiores / Re: Msflexgrid
« en: Lunes 26 de Enero de 2004, 15:21 »
Hola Liquid_Snake.

1 - Prueba algo de este estilo:
Código: Text
  1.  
  2. Private Sub MSFlexGrid1_SelChange()
  3. Dim intR As Integer, intC As Integer
  4. Dim intStepR As Integer, intStepC As Integer
  5. Dim str1 as String
  6. If MSFlexGrid1.Row > MSFlexGrid1.RowSel Then
  7.    intStepR = -1
  8. Else
  9.    intStepR = 1
  10. End If
  11. If MSFlexGrid1.Col > MSFlexGrid1.ColSel Then
  12.    intStepC = -1
  13. Else
  14.    intStepC = 1
  15. End If
  16. For intR = MSFlexGrid1.Row To MSFlexGrid1.RowSel Step intStepR
  17.    For intC = MSFlexGrid1.Col To MSFlexGrid1.ColSel Step intStepC
  18.       str1 = str1 & MSFlexGrid1.TextMatrix(intR, intC) & "&#59; "
  19.    Next intC
  20. Next intR
  21. MsgBox Left(str1, len(str1) - 3)
  22. End Sub
  23.  
  24.  
El código recorre la selección mostrando en un cuadro de diálogo el valor de las celdas seleccionadas.

2 - Usa la misma filosofia: utiliza la propiedad TextMatrix para obtener/asignar valores por fila y columna. Para almacenar los datos, valora tu mismo que es lo que te coviene (archivo de texto, tabla, etc...).

Suerte.

648
Hola nestor g.

Yo sin dudarlo utilizaría un control PictureBox. No cuenta con barras de desplazamiento, pero puedes añadir los correspondientes controles  (HScrollBar y VScrollBar) para obtenerlas. Para efectuar el desplazamiento del picture, modifica las propiedadaes Top y Left según el valor del VScroll y el HScroll respectivamente.

Si te hace falta, luego, si tengo tiempo te adjunto un ejemplo...

Suerte.

649
Visual Basic 6.0 e inferiores / Re: Fijar Variables
« en: Miércoles 21 de Enero de 2004, 18:28 »
Hola rechy.

Declara la variable RHOT a nivel de módulo como una matriz a dimensionar dinámicamente:

Código: Text
  1.  
  2. Private RHOT() As Single
  3.  
  4. Function calcular_SG(SG, T)
  5.  
  6.    On Local Error Resume Next
  7.    Dim intIndex as integer
  8.    intIndex = Ubound(RHOT)
  9.    intIndex = intIndex + 1
  10.    If IntIndex > 1 then
  11.       Redim Preserve RHOT(1 to intIndex)
  12.    else
  13.       Redim RHOT(1 to 1)
  14.    end if
  15.    .
  16.    .
  17.    .
  18.    'Aceite Combustible
  19.    .
  20.    .
  21.    .
  22.    'Aplicacion de Correccion de Hidrometro
  23.    RHOT(intIndex) = RHO * HYC
  24.    .
  25.    .
  26.    .
  27. End Sub
  28.  
  29.  

De esta forma cada vez que llames a la función almacenas el valor que te interese en una nueva dimensión RHOT(intIndex) de forma que puedes tener disponibles todos los valores cuando te interese.

Suerte.

650
Visual Basic 6.0 e inferiores / Re: Visual Basic Y Crystal Report
« en: Miércoles 21 de Enero de 2004, 17:34 »
Hola Antoniocgt.

No tengo ni idea de Crystal Report, pero supongo que algún objeto contará con una propiedad a la que asignar un objeto o cadena de conexión, cadena en la que puedes especificar el path de la bd... vaya, que en el sitio en que especificas el nombre de la bd, especifica el nombre pero con su vía de acceso correspondiente.

De todas formas, y por si este no era tu problema,  viendo que el texto del mensaje es 'Logon Failed' y teniendo en cuenta que has movido la base de datos a un servidor... pues se me ocurre que el fallo puede estar a nivel de autorizaciones o permisos de usuario para el recurso del servidor... (repito que no tengo ni idea de CR) tal vez CR necesite crear algun recordset actualizable, y si no cuenta con permiso de escritura...

Espero que esto te ayude, y si no a ver si alguien que controle el tema te echa un cable. Suerte.

Páginas: 1 ... 24 25 [26] 27 28 ... 43