Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: ListVList View и база данных Добавлено: 21.10.09 15:32  

Автор вопроса:  Mc.WOLF
Не могу разобраться с кодом
на форме pbfon(PictureBox), ListView1, txtFilter(TextBox)


Dim marks()

Private Sub Form_Load()

    ListView1.ListItems.Add , , "hi"
    ListView1.ListItems.Add , , "do"
    ListView1.ListItems.Add , , "wi"
    
    
    pbfon.AutoRedraw = True
    pbfon.BackColor = ListView1.BackColor
    pbfon.ScaleMode = vbTwips
    pbfon.BorderStyle = vbBSNone
    pbfon.Visible = False
    ListView1.ColumnHeaders.add , , "Firma", ListView1.Width
    marks = Array("Micro Intel", "Micro Amd", "Memoria Usb", "Impresora Epson", "Monitor LG", "DVD Samsung")

    For i = 0 To UBound(marks)
        ListView1.ListItems.add , , marks(i)
    Next
    txtFilter.Text = ""
End Sub
Sub markFind(find As String)
Dim i As Integer
    For i = 0 To UBound(marks)
        If InStr(1, LCase(marks(i)), find) > 0 And Len(find) > 0 Then
            setBColorLVRow ListView1, i, &HFF&
        Else
            setBColorLVRow ListView1, i, ListView1.BackColor
        End If
    Next
End Sub
Function setBColorLVRow(lv As ListView, nRow As Integer, Color As OLE_COLOR) As Integer
    If nRow > ListView1.ListItems.Count Then setBColorLVRow = 1
    If ListView1.ListItems.Count < 1 Then setBColorLVRow = 2
    pbfon.Width = lv.Width
    pbfon.Height = lv.ListItems(1).Height * (lv.ListItems.Count)
    pbfon.ScaleHeight = lv.ListItems.Count
    pbfon.ScaleWidth = 1
    pbfon.DrawWidth = 1
    pbfon.Line (0, nRow)-(1, nRow + 1), Color, BF
    lv.Picture = pbfon.Image
    lv.Refresh
End Function

Private Sub txtFilter_Change()
    markFind txtFilter.Text
End Sub


Как вставить в
marks = Array("Micro Intel", "Micro Amd", "Memoria Usb", "Impresora Epson", "Monitor LG", "DVD Samsung")
вместо "Micro Intel", "Micro Amd"... данные из БД?

Ответить

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

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 21.10.09 15:43
Сделай запрос на выборку к базе данных, а там, где заполняешь контрол вместо массива в цикле используй обращение к полю в наборе записей (в Recordset'е). Используй ADO или DAO для подключения к базе данных.

Ответить

Номер ответа: 2
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #2 Добавлено: 21.10.09 15:48
а поподробней желательно в примере :)

Ответить

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



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #3
Добавлено: 21.10.09 16:03
Знакомый код)) А поподробнее скажи какую базу используешь???

Ответить

Номер ответа: 4
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #4 Добавлено: 21.10.09 16:12
:) вот собственно код погружения БД
  1.  
  2. With Sclad
  3.     .MoveFirst
  4.     Do While Not .EOF
  5.  
  6. Set base = lvvsclad.ListItems.add(, , .Fields("id"))
  7.  
  8.                 base.SubItems(1) = .Fields("ComplectName")
  9.         .MoveNext
  10.     DoEvents
  11.     Loop
  12. End With

Ответить

Номер ответа: 5
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #5 Добавлено: 21.10.09 18:37
Мне кто-нибудь поможет?

Ответить

Номер ответа: 6
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #6
Добавлено: 21.10.09 19:35
Не пойму что ты хочешь
  1.  
  2.  With Sclad
  3.      .MoveFirst
  4. dim i as integer
  5. i=0
  6. Dim marks() As String
  7. ReDim marks(recordCount)
  8.      Do While Not .EOF
  9.          marks(i)=.Fields("dfsdfsd")
  10.          i=i+1
  11.      Loop
  12. End With


Это?

Ответить

Номер ответа: 7
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #7 Добавлено: 21.10.09 20:20
Run-time error '9':

Subscript out of range

:(

Ответить

Номер ответа: 8
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #8
Добавлено: 21.10.09 20:34
recordCount наверное нигде ты не присвоил это количество твоих записей

Ответить

Номер ответа: 9
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #9 Добавлено: 21.10.09 20:43
А в примере, ато я не очень понимаю в db

Ответить

Номер ответа: 10
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #10
Добавлено: 21.10.09 21:18
Блин ну ты так и не сказал как ты подключаешься к базе данных, с помощью компонента Adodc вроде так можно узнать,
  1. recordCount = Adodc1.Recordset.RecordCount

 а если еще как то то я не помню

Ответить

Номер ответа: 11
Автор ответа:
 Mc.WOLF



Вопросов: 26
Ответов: 84
 Профиль | | #11 Добавлено: 21.10.09 21:56
  1.  
  2. Public ADDRESSBOOK As Database
  3.  
  4. Public Sclad As Recordset
  5. Public DATAB As Boolean
  6.  
  7.  
  8. Public Sub LoadDatabase(Optional sFile As String = "")
  9. On Error GoTo ERR1:
  10. Call LAngDB
  11. Dim uname As String
  12. sFile = Base_Name
  13. DATAB = True
  14.  
  15.  
  16. Set ADDRESSBOOK = OpenDatabase(IIf(Right(BasePath, 1) = "\", BasePath, BasePath & "\") & sFile, False, False, ";PWD=" & MyShadowPassword)
  17. Set Sclad = ADDRESSBOOK.OpenRecordset("Sclad", dbOpenDynaset)
  18. Exit Sub
  19. ERR1:
  20. 'MsgBox "Error DataBase: " & sFile & vbCrLf & vbCrLf & Err.Description, vbCritical, "Error!"
  21.  
  22.  
  23.     If MessageBox(frmMain.hWnd, "Не найдена база данных -" & Base_Name & " или отсутствуют обязательные таблицы..." & vbCrLf & "Или нет подключения к " & frmLogin.txtLocalPathDB.Text & vbCrLf & "Вы хотите загрузить базу по умолчанию?", _
  24.         App.ProductName, MB_YESNO Or MB_ICONEXCLAMATION) = IDYES Then
  25.  
  26. Base_Name = "base.mdb"
  27. BasePath = App.Path
  28. frmLogin.BD.Text = Base_Name
  29. LoadDatabase
  30.         Else
  31.         End
  32.                    
  33.     End If
  34.  
  35.  
  36.  
  37. End Sub

Ответить

Страница: 1 |

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



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