Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: wolf_kof en Febrero 19, 2012, 12:32:40 pm

Título: Problemas con Ado.Fields("UNI"&n).value
Publicado por: wolf_kof en Febrero 19, 2012, 12:32:40 pm
Muy buenos días a todos, tengo un grave problema con el llenado de datos de un listview aparentemente cuando cargo los datos de esta forma

Código: (vb) [Seleccionar]
Sub RellenarNotas()
On Error Resume Next

ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear

ListView1.ColumnHeaders.Add 1, , "Carnet", 1320
ListView1.ColumnHeaders.Add 2, , "Apellidos y Nombre", 4000
ListView1.ColumnHeaders.Add 3, , "Nota", 700
ListView1.ColumnHeaders(3).Alignment = lvwColumnRight

Do Until Notas.EOF
    ListView1.ListItems.Add 1, , Notas!carnet
        ListView1.ListItems(1).ListSubItems.Add 1, , Notas!ape_nom
        ListView1.ListItems(1).ListSubItems.Add 2, , Notas.Fields("PUN" & Val(t(0).Text))
'        Debug.Print Notas.Fields("PUN" & Val(t(0).Text))
Notas.MoveNext
Loop

End Sub


Esta es la sección de codigo que no me funciona muy bien en el listview Notas.Fields("PUN" & Val(t(0).Text)) aparentemente en el Debug.Print todo bien carga los datos y los monta a una caja de texto si deseo, pero en el listview solamente me da un dato en el primer registro del listivew y los demas los deja en blanco.


La tabla tiene campos como PUN1, PUN2, PUN3 y según una caja de texto quiero guardar en esos campos con esa distinción para el llenado de registros

Título: Re:Problemas con Ado.Fiel("UNI"&n).value
Publicado por: YAcosta en Febrero 19, 2012, 01:59:58 pm
Doc, en esta parte:

ListView1.ListItems(1).ListSubItems.Add 2, , Notas.Fields("PUN" & Val(t(0).Text))

Si t(0).Text tiene el valor 15 entonces se traduciría la búsqueda en

ListView1.ListItems(1).ListSubItems.Add 2, , Notas.Fields("PUN15")
y no hay PUN15 pq dices que es hasta 3

Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: wolf_kof en Febrero 19, 2012, 02:36:05 pm
Simon eso ya esta parametrizado t(0) no puede tener un numero superior a 3. el problema no es hay es en el listview
Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: YAcosta en Febrero 19, 2012, 02:42:11 pm
Ah, ok doc, tonses por mi parte no te puedo ayudar mas porque no trabajo con listview, ahorita se aparece algun tigre y te hecha la mano. Suerte.
Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: ADONAIRAFA en Febrero 19, 2012, 04:47:40 pm
Saludos a Yvan y Wolf_kof !!! ;D

No se wolf. pero ahí algo en el "loop" que no termina de convencerme, pero te dejo la que utilizo para cargar un ListView (que usado bastante, pero estamos en trámites de separación, porque me voy a fugar con MSHFlexGrid, Je, Je  ;D). En fin he aquí el código:

Código: (VB) [Seleccionar]
Option Explicit

Private lstLi As ListItem

Private Sub Form_Load()
        Dim sql As String
        Dim rcs As New ADODB.Recordset
        '//
        With lvwListado
                .View = lvwReport
                .FullRowSelect = False
                .GridLines = True
                .LabelEdit = lvwManual
                .ColumnHeaders.Add , , "Código", 1100
                .ColumnHeaders.Add , , "Artículo", 4440, lvwColumnLeft
                .ColumnHeaders.Add , , "Precio Unitario", 1600, lvwColumnRight
                .ColumnHeaders.Add , , "Existencia", 1200, lvwColumnRight
                .ListItems.Clear
        End With
        '//
        sql = "SELECT * FROM Stock_Articulos"
        With rcs
                .Open sql, adoConex, 1, 4
                Do While Not .EOF
                        Set lstLi = lvwListado.ListItems.Add(, , Format(.Fields!Codigo, "00000") & "")
                        lstLi.SubItems(1) = .Fields!articulo & ""
                        lstLi.SubItems(2) = Format(.Fields!precio, "##,##0.00") & ""
                        lstLi.SubItems(3) = Format(.Fields!Cantidad, "00")
                        .MoveNext
                Loop
                .Close
        End With
        Set rcs = Nothing
End Sub

Quizás te pueda servir el modelo, a mi me ha servido para todo y también en consultas filtradas.

Saludos !!! ;D



Manuel F. Borrego S. 8)
Barcelona, Venezuela.
Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: seba123neo en Febrero 19, 2012, 04:55:33 pm
yo no veo bien la forma en que carga al listview, la forma que se debe cargar es esta:

Código: (vb) [Seleccionar]
Dim SItem As ListItem
Dim i As Integer

For i = 1 To 50

Set SItem = ListView1.ListItems.Add(, , "Elemento" & i)
   SItem.SubItems(1) = "Subitem " & i
   SItem.SubItems(2) = "Subitem " & i
Next

Set SItem = Nothing

veo una mezcla de formas en obtener los valores de los campos del recordset, no uses el .Fields(), ni el famoso "!" (que personalmente odio), el mas simple y suficiente es Notas("tucampo"). tampoco hace falta poner a lo ultimo .Value

PD: agarrense que hoy publico el post que habia prometido hace unos meses, un AMB simple explicado a fondo usando ADO + SQL puro.

saludos.
Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: ADONAIRAFA en Febrero 19, 2012, 05:06:03 pm
Bueno, dale duro Sebas !!! estaremos esperando tu post para "devorar" más conocimientos, Je, Je  ;D !!!

Saludos !!!
Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: wolf_kof en Febrero 19, 2012, 11:58:31 pm
Excelente............ Gracias Seba yo tambien estoy esprando Seba.
Título: Re:Problemas con Ado.Fields("UNI"&n).value
Publicado por: E N T E R en Febrero 20, 2012, 10:50:28 am
Yo lo Hago Asi:

Código: (VB) [Seleccionar]
        rsADO.Open StrSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText
       
        Do Until rsADO.EOF
            Set Lv = LReportes.ListItems.Add()           
            With rsADO
               
                Lv.Text = .Fields("codigo")
                Lv.SubItems(1) = .Fields("cedula") & ""
                Lv.SubItems(2) = .Fields("ruc") & ""
                Lv.SubItems(3) = .Fields("empresa") & ""
                Lv.SubItems(4) = .Fields("telefono1") & ""
                rsADO.MoveNext

            End With
        Loop