Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: access, access.... надоел мне уже Добавлено: 23.05.05 07:09  

Автор вопроса:  psinetron | ICQ: 218945948 
Здравствуйте. у меня вот какой вопросик.
Мне нужно заполнить ListView данными из access таблицы.
Я умею заполнять так:
i = 1
Set rs = cn.Execute("select * from tab1")
Do While Not rs.EOF
ListView1.ListItems.Add i, , rs!idnm
ListView1.ListItems(i).SubItems(1) = rs!surname
ListView1.ListItems(i).SubItems(2) = rs!Name
ListView1.ListItems(i).SubItems(3) = rs!telephon
ListView1.ListItems(i).SubItems(4) = rs!address
ListView1.ListItems(i).SubItems(5) = rs!groupp
i = i + 1
rs.MoveNext
Но на этот раз я не знаю имена столбцов в Access. Т.е. мне дано количетво столбцов (KN), и такая схемка: каждый столбик называется "id" & kn, Например id1, id2,id3, ..., idn
Как же заполнить List View??? Пробовал различные варианты типа ListView1.ListItems(i).SubItems(1) = rs! & "id" & i - но они не работают :(((

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 23.05.05 11:18
rs(i)
rs("id" & i)

Ответить

Номер ответа: 2
Автор ответа:
 Shark



ICQ: 284036855 

Вопросов: 35
Ответов: 155
 Web-сайт: www.ma26.ru
 Профиль | | #2
Добавлено: 24.05.05 23:52
Используй не List а какой - нибудь Grid

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 25.05.05 00:32
эх...

Public Sub WritetoListView(ListView As ListView, DBPath$, Password$, Table$) '+
'Отображает базу в ListView
Dim Db As Database, rs As Recordset
ListView.View = lvwReport

Set Db = OpenDatabase(DBPath$, False, False, "MS Access;pwd=" & Password$)
Set rs = Db.OpenRecordset("select * from [" & Table$ & "]";)

For i = 0 To rs.Fields.Count - 1 'Создаём столюцы
ListView.ColumnHeaders.Add , , rs.Fields(i).Name
Next

If rs.EOF = False Then
'Заполняем значениями столбцы

    While Not rs.EOF
Set lvItm = ListView.ListItems.Add(, , IIf(IsNull(rs(0)), "", rs(0)))
        For i = 1 To rs.Fields.Count - 1
            lvItm.SubItems(i) = IIf(IsNull(rs(i)), "", rs(i))
        Next
        sno = sno + 1
        DoEvents
        rs.MoveNext
    Wend
End If
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Скептик



Вопросов: 2
Ответов: 24
 Профиль | | #4 Добавлено: 16.07.05 14:58
Ув. HACKER
зачем в вашем коде используется переменная sno?
1. Она на инициализированно
2. Присваивание ради присваивания?

По поводу DoEvents - может оценить rs.RowCount и принять решение о его использовании
Или хотя б вставлять его в каждый десятый(например) прогон цикла...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам