|
Mostrar Mensajes
|
Páginas: 1 2 3 [4] 5 6 7 8
|
31
|
Programación / Programación Visual Basic / Re: Subitems en listview
|
en: 22 Octubre 2007, 21:59 pm
|
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 / Programación Visual Basic / Subitems en listview
|
en: 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 / Programación Visual Basic / AddObject
|
en: 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 / Programación Visual Basic / Criterios en Sql.
|
en: 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.
|
|
|
37
|
Programación / Programación Visual Basic / DAO y DataReport.-
|
en: 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 / Programación Visual Basic / Chekbox en ListView
|
en: 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 / Programación Visual Basic / Re: Bucles.
|
en: 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 / Programación Visual Basic / Bucles.
|
en: 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.
|
|
|
|
|
|
|