Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - mdg

#31
Buenas amigos, mas o menos encontre la solucion la cual me trae un efecto no deseado, veamos si pueden ayudarme.

resulta que cuando inserto los datos en la columna por ejemplo cuatro con el siguiente codigo:


Dim i As Long
Dim item As ListItem

For i = 1 To Me.ListView1.ListItems.Count

   
    Set item = Me.ListView1.ListItems.item(i)
    item.ListSubItems.Add 2, , "valor"
   
    Next i

El valor que estaba en la siguiente columna se corre a la siguiente y asi sucesivamente, alguien tiene alguna sugerencia, gracias.
#32
Programación Visual Basic / Subitems en listview
22 Octubre 2007, 20:44 PM
Hola amigos.

Tengo un listview con las columnas

legajo nombre  apellido           antiguedad
1         marcelo  cardozo
2         dario       diaz
3         ivan        bazan
etc...     


Todas las columnas como veran estan completas menos la de antiguedad la cual necesito completar una ves que este la lista llena, lo que intente es lo siguiente:

Recorro todos los item del listview intentando completar esta ultima columna.

Dim i As Long
Dim item As ListItem

For i = 1 To Me.ListView1.ListItems.Count

   
    Set item = Me.ListView1.ListItems.item(i).ListSubItems.Add(3, , "lo que sea")

    Next i

 
Esto me larga error "El indice esta fuera de los limites" y no encuentro solucion, desde ya muchas gracias de antemano por su tiempo y por su ayuda.
#33
Programación Visual Basic / AddObject
22 Octubre 2007, 06:00 AM
Buenas amigos, ante todo muchas gracias por su ayuda.

La cuestion es que estuve investigando mucho acerca del Scriptcontrol y encontre la solucion con dicho contro a mis problemas, el problema es el siguiente:

A continuacion un trozo de codigo que descargue de la web y luego la consulta.

Dim o_Script As MSScriptControl.ScriptControl

Private Sub Form_Load()
   
    ' Inicializa la variable para usar el ScriptControl
    Set o_Script = New MSScriptControl.ScriptControl
   
    ' Establece como lenguaje VBScript
    o_Script.Language = "VBScript"
   
    o_Script.AddObject "form1", Form1   
    Command1.Caption = " Ejecutar código"
    Command2.Caption = " Limpiar textBox"
       End Sub

Private Sub Command1_Click()
   
    Dim Valor As Variant
   
    ' Le pasa a Eval el contendo de Text1
    On Error GoTo ErrSub:
    Valor = o_Script.Eval("form1." & Me.Text1)
   
    'visualiza el resultado
    MsgBox Valor, vbInformation
   

Exit Sub
'Error
ErrSub:
MsgBox Err.Description, vbCritical
Err.Clear

End Sub

La cuestion es que este codigo me perimite ejecutar cualquier codigo que se encuentre en el modulo de form1 modulo y lo que yo necesito es poder ejecutar en este formulario los codigos de otro mudulo general, es esto posible?, supongo que la cuestion esta en AddObject "Form1",creo que ahi debo especificar el nombre del modulo pero no tengo idea de como hacerlo, alguien sabe como hacerlo, no se si me llego a explicar pero gracias nuevamente.
#34
Programación Visual Basic / Criterios en Sql.
18 Octubre 2007, 22:50 PM
Hola foreros, nuevamente apelo a su conocimiento, de antemano gracias por su tiempo y por su ayuda.

El asunto es que tengo un procedimiento que me filtra registros y los inserta en un listview, el problema lo tengo en las opciones del filtrado, en el formulario tengo un Chek, alhacer ckick en este se habilita o deshabilita un combo en el cual tengo los datos de la tabla categorias en formato 001 - Administracion, 002 - Trafico, Etc , lo que pretendo es que si el chek esta en False que me filtre todos los registros y si esta en true me filtre los registros para la categoria seleccionada del combo, he simplificado en este caso por que a demas de opcion por categoria tengo 7 opciones mas por lo que no se me hace facil hacer una sql por que tendria que realizar una combinacion terrible de datos por lo que se me ocurrio lo que les marco en rojo pero no me da error pero tampoco funciona, o sea no me devuelve todos los registros.



Sub Filtrar()
On Error GoTo Hay_err_err

Dim Categoria As Variant

If Me.Check2.Enabled = True Then
Categoria = "*"
end If

If Me.Check2.Enabled = false Then
Categoria = Mid(Me.Combo4,1,3)
end If


Dbpath = App.Path & "\" & DirectorioBase & "\" & Db_A_Name
         
   StrSql = "SELECT * FROM tbl_Empleados WHERE categoria=" & Categoria
       
               
        Set Db = DBEngine.OpenDatabase(Dbpath, False, False, ";pwd=" & StrPass)
     
          Set Rst = Db.OpenRecordset(StrSql)
       
               
While Not Rst.EOF
       
          Set Item = Me.ListView2.ListItems.Add(, , Rst!legajo)
           Item.SubItems(1) = Rst!nombres '& ", " & Rst!Apelldos
              Rst.MoveNext
       
        Wend
       
Hay_err_exit:
   
Rst.Close
Db.Close

Set Rst = Nothing
Set Db = Nothing

Hay_err_err:
   
Select Case Err.Number
Case 3024

            MsgBox "Es imposible encontrar la base de datos. " & vbCrLf & vbCrLf & "Verifique que exista o que se encuentre en la ruta:" & App.Path & "\bases" & "  e intente nuevamente", vbInformation + vbOKOnly, "Aviso!"
'            Exit Function
           
Case 3078
            MsgBox "Es imposible encontrar la tabla: " & vbCrLf & vbCrLf & "Verifique que exista o que se encuentre en la base de datos" & "Base_Actual.mdb" & "e intente nuevamente", vbInformation + vbOKOnly, "Aviso!"
            'Exit Function
End Select

End Sub


Bueno, nuevamente gracias y disculpen si olvido algo es que lo escribo comoforme se me cruzan las palabras.
#35
Hola comapñero, gracias por tu tiempo, estuve mirando el enlace que me dejaste pero no trata para nada el asunto de DAO con DataReport, igualmente gracias y sigo buscando...
#36
Gracias amigo por tu ayuda, podes cerrar el tema
#37
Programación Visual Basic / DAO y DataReport.-
17 Octubre 2007, 03:44 AM
Buenas nuevamente compañeros, gracias por su constante ayuda.

Dado que desconozco como funciona ADO ,aunque he visto mas o menos su funcionamiento me resulta muy comodo traajar con DAO por lo que he realizado muchas busquedas en la web y no encuentro docuementacion acerca de como generar reportes con DAO en vb6, asi que mi consulta seria si es posible utilizar dao con datareport, si alguien sabe de algun enlace o documentacion se lo agradecere eternamente.
#38
Programación Visual Basic / Chekbox en ListView
16 Octubre 2007, 22:25 PM
Buenas colegas.

La cuestion es que tengo un procedimiento en el cual inserto registros en una tabla mediante un bucle que recorre elementos en dos controles listview, la cuestion es que quiero que los registros que solo me agregue solo los registros que este chekados, es esto posible, lo ue intente es lo siguiente: , de antemano gracias


Private Sub cmdliquidar_Click()

Dim i As Long
Dim f As Long

Dbpath = App.Path & "\" & DirectorioBase & "\" & Db_A_Name
       
    StrSql = "SELECT * FROM tbl_liquidacion"
       
        Set Db = DBEngine.OpenDatabase(Dbpath, False, False, ";pwd=" & StrPass)
       
        Set Rst = Db.OpenRecordset(StrSql)
                       
         
      For i = 1 To Me.ListView1.ListItems.Count
   
          For f = 1 To Me.ListView2.ListItems.Count
     
       If Me.ListView2.ListItems.Item(i).Checked = True Then
          Rst.AddNew
          Rst!codigo = Me.ListView1.ListItems.Item(i).Text
          Rst!legajo = Me.ListView2.ListItems.Item(i).Text
          Rst.Update
          End If
          Next f
         
         
         
        Next i
       
         
         
         
End Sub
#39
Programación Visual Basic / Re: Bucles.
28 Agosto 2007, 02:57 AM
Hola muchachos, gracias a ambos, elmaro , gracias por pasarme el codigo para contar registros me viene al pelo,gracias a sus sugerencias pude solucionar la cuestion asi:

Dim cuantoshay As Integer
Dim contadorfor As Integer
Dim lrg As Double
Dim intv As Double
Dim ctat As Integer
Dim prct As Integer
Dim sql As String
Dim rst As DAO.Recordset
Dim lstitem As ListItem
Dim indice As Long

Me.ListView1.View = 3
indice = indice + 1
DBpath = App.Path & "\Datos\tablas.mdb"
strsql = "SELECT * FROM tbl_empleados"
  Set db = DBEngine.OpenDatabase(DBpath, False, False, ";pwd=" & MiPass)
    Set rst = db.OpenRecordset(strsql)
   
    'Movemos el foco de los registros del inicio al fin
    'con el objeto de contarlos lugo
   
    rst.MoveFirst
     rst.MoveLast
     
     'Volvemos a mover el foco al primer registro
       rst.MoveFirst
     
     
cuantoshay = rst.RecordCount

For contadorfor = 0 To cuantoshay - 1

Me.lblporcentaje.Visible = True
Me.progreso.Visible = True

lrg = Me.ancho.Width 'para el ancho total al que debe llegar la barra de progres
intv = lrg / cuantoshay 'valor por cada archivo

            ctat = ctat + 1 'valor 1
            prct = (ctat / cuantoshay) * 100 'porcentaje 1
           
            Me.progreso.Visible = True
            Me.progreso.Width = ctat * intv 'el progreso es desde 1 * intv
            Me.lblporcentaje.Caption = prct & " %" 'muestra el porcentaje transcurrido
           
           
                           
Set lstitem = Me.ListView1.ListItems.Add(indice, , rst("legajo"))
       

rst.MoveNext

Next

Osea movia el registro del primero al ultimo para contarlos y luego lo muevo nuevamente al principio antes de comenzar el bucle, gracias nuevamente y pueden cerrar el tema.-
#40
Programación Visual Basic / Bucles.
26 Agosto 2007, 21:55 PM
Hola amigos!


Tengo en una misma rutina dos bucles, o almenos es lo que intento, uno para recorrer los rst de una tabla e insertar los registros en un listview y otro para hacer correr un progressbar pero no logro hacer que marche, aver si pueden echarme una mano y decirme donde tengo el error:


Dim cuantoshay As Integer
Dim contadorfor As Integer
Dim lrg As Double
Dim intv As Double
Dim ctat As Integer
Dim prct As Integer
Dim sql As String
Dim rst As DAO.Recordset
Dim lstitem As ListItem
Dim indice As Long
Dim empresa As Integer

indice = indice + 1
empresa = Mid(Val(MDIForm1.lblempresa.Caption), 1, 4)
Me.ListView1.View = 3

DBpath = App.Path & "\Datos\tablas.mdb"
strsql = "SELECT * FROM tbl_empleados where empresa=" & empresa
  Set db = DBEngine.OpenDatabase(DBpath, False, False, ";pwd=" & MiPass)
    Set rst = db.OpenRecordset(strsql)

rst.MoveFirst
rst.MoveLast

cuantoshay = rst.RecordCount

For contadorfor = 0 To cuantoshay - 1

'ACA RECORRO LOS RST Y LOS INSERTO EN EL LISTVIEW PERO SOLO
ME INSERTA EL PRIMERO Y LUEGO NADA

Do Until rst.EOF
Set lstitem = Me.ListView1.ListItems.Add(indice, , rst("legajo"))
    ListView1.ListItems(indice).ListSubItems.Add , , Me.txtconcepto.Text
    ListView1.ListItems(indice).ListSubItems.Add , , Me.lblconcepto.Caption
rst.MoveNext
Loop
   


Me.lblporcentaje.Visible = True
Me.progreso.Visible = True

lrg = Me.ancho.Width 'para el ancho total al que debe llegar la barra de progres
intv = lrg / cuantoshay 'valor por cada archivo

            ctat = ctat + 1 'valor 1
            prct = (ctat / cuantoshay) * 100 'porcentaje 1
           
            Me.progreso.Visible = True
            Me.progreso.Width = ctat * intv 'el progreso es desde 1 * intv
            Me.lblporcentaje.Caption = prct & " %" 'muestra el porcentaje transcurrido
           
Next

La barra corre bien por que inserte un msgbox antes del next para constatar que no tuviera el problema ahi pero no, asi que no logro dar con la solucion, por otro lado tambien intente hacer los dos procesos por separado pero en caso de que se produsca un error o inconveniento uno de los procesos terminaria antes que el otro y no se veria profesional, desde ya muchas gracias por su ayuda y por su atencion.