Autor Tema: Problemas con Ado.Fields("UNI"&n).value  (Leído 2420 veces)

0 Usuarios y 1 Visitante están viendo este tema.

wolf_kof

  • Visitante
Problemas con Ado.Fields("UNI"&n).value
« 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

« última modificación: Febrero 19, 2012, 02:02:31 pm por YAcosta »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Problemas con Ado.Fiel("UNI"&n).value
« Respuesta #1 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

Me encuentras en YAcosta.com

wolf_kof

  • Visitante
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #2 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

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #3 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.
Me encuentras en YAcosta.com

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #4 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.
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #5 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.
« última modificación: Febrero 19, 2012, 04:58:02 pm por seba123neo »

ADONAIRAFA

  • Gigabyte
  • ****
  • Mensajes: 291
  • Reputación: +37/-1
  • Que bien se siente al terminar un programa !!!
    • Ver Perfil
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #6 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 !!!
Hay dos tipos de personas: Los que siguen un camino... y los que hacen camino al avanzar !!!

wolf_kof

  • Visitante
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #7 en: Febrero 19, 2012, 11:58:31 pm »
Excelente............ Gracias Seba yo tambien estoy esprando Seba.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Problemas con Ado.Fields("UNI"&n).value
« Respuesta #8 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
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo