Avatar billede mini-me Nybegynder
04. december 2005 - 12:57 Der er 12 kommentarer og
1 løsning

Min listboks er ikke nok mere..

Hejsa,

Jeg bruger pt. en liste i VB hvor jeg via addItem smider nogle records fra min db ind.

Men hvad skal der til for at kunne lave en opdeling som windows stifinder etc. bruger, hvor jeg har felternes navn øverst og så mine records bagefter.

Se screenshot:

http://www.pcfreek.dk/uploadfiles/20051204125722.jpg
Avatar billede joern Nybegynder
04. december 2005 - 13:09 #1
Hej.

Du kan bruge DBGrid eller MSFlexGrid.  Jeg kender kun til brug af FlexGrid, men med søgefunktionen på Eksperten kan du søge på dbgrid.

/jørn
Avatar billede mini-me Nybegynder
04. december 2005 - 13:28 #2
hMMM umiddelbart så ligner det jo noget fra access... det er ikke det jeg søger jeg vil gerne have at det ser ud som windows.
Avatar billede mini-me Nybegynder
04. december 2005 - 13:36 #3
Tror det er listview jeg skal have gang i tror, jeg har fundet en løsning men lader spm stå åben
Avatar billede joern Nybegynder
04. december 2005 - 13:41 #4
Hej.

Du vidste det selv.  Der kommer sikkert nogle der svarer, - i mellemtiden er der
http://exp.dk/spm/Programmering/Visual-Basic/?sort=&order=DESC&status_3=on&spm_creator=&spm_part=&spm_answer=&find=listview&engine=exp

M.v.h. Jørn
Avatar billede mini-me Nybegynder
04. december 2005 - 14:06 #5
Hej Jørn,

Tjaa kiggede lidt omkring og fandt frem til at listview måtte være sagen og søgte så også på eksperten.

Dog har jeg problem..
Har oprettet 3 kolonner, som hedder Fra, Til, KM

Dette virker...:
If Not (Rs.BOF Or Rs.EOF) Then
   
        ListView1.ListItems.Clear
        Do While Not Rs.EOF
                     
            ListView1.ListItems.Add 1, , "Valgtext" ' Hvis denne aendres til Rs("Fra") saa faar jeg fejl... but why..
            ListView1.ListItems(1).SubItems(1) = Rs("Til")
            ListView1.ListItems(1).SubItems(2) = rs("KM")



            Rs.MoveNext
        Loop
   
    End If
///////////// DETTE VIRKER IKKE...

If Not (Rs.BOF Or Rs.EOF) Then
   
        ListView1.ListItems.Clear
        Do While Not Rs.EOF
                 
                     
            ListView1.ListItems.Add 1, , rs("Fra")
            ListView1.ListItems(1).SubItems(1) = Rs("Til")
            ListView1.ListItems(1).SubItems(2) = RS("KM")



            Rs.MoveNext
        Loop
   
    End If
Avatar billede joern Nybegynder
04. december 2005 - 15:01 #6
Når du afvikler fra VB, kan dubuggeren jo vise dig i hvilken linie fejlen er.
jeg fejlsøger ofte ved at indsætte msgbox  f.eks.  msgbox("Rs = " & Rs)
Så kan du se hvad værdien er, når programmet fejler.

Men jeg har heller ikke brugt Listview.  MSFlexGrid bruger jeg derimod ofte.  Og så bruger jeg forresten heller ikke records, mine databaser er ren Ascii, - det synes jeg giver mest kontrol og felxibilitet.

/jørn
Avatar billede sjh Nybegynder
05. december 2005 - 13:23 #7
joern > ha ha den var ellers god.. hvad hvis han har 50.000 poster i sin Rs..

  kan du se det:
  For i = 1 To 50000
    Msgbox "Rs = " & i
  Next

  Det er beder at bruge:
  Debug.Print "Rs = " & i
Avatar billede joern Nybegynder
05. december 2005 - 13:50 #8
sjh>> Det skal selvfølgelig laves sådan, at msgbox kun kommer, når programmet fejler.
Avatar billede sjh Nybegynder
05. december 2005 - 14:04 #9
mini-me > Her er også et eksempel.. kan desværre ikke vide hvad der står Rs("HER")

' ----------------------------- Form1 -----------------------------
' Husk at tilføje ListView1 på Form1. ListView kan tilføjes ved at
' trykke [CTRL]+[T] find så "Microsoft Windows Common Controls 5.0"
' -----------------------------------------------------------------
Option Explicit

Private Sub Command1_Click()
Dim intID As Integer ' <- Til Test
Dim lv As ListView
Dim Litem As ListItem

  Set lv = ListView1 ' <- ListView

  lv.ListItems.Clear
  For intID = 1 To 100 ' <- Til Test
  ' Do While Not Rs.EOF
    Set Litem = lv.ListItems.Add(, , Str$(intID)) ' Str$(Rs("ID"))
    With Litem
        .SubItems(1) = "Navn"      ' Rs("Navn")
        .SubItems(2) = "Adresse"    ' Rs("Adresse")
        .SubItems(3) = "Postnummer" ' Rs("Postnummer")
        .SubItems(4) = "E-Mail"    ' Rs("E-Mail")
    End With
'  Rs.MoveNext
' Loop
  Next ' <- Til Test
End Sub

Private Sub Form_Load()
  With ListView1 ' <- ListView
      .View = 3
      .ColumnHeaders.Add , , "ID", 600
      .ColumnHeaders.Add , , "Navn"      ' SubItems(1)
      .ColumnHeaders.Add , , "Adresse"    ' SubItems(2)
      .ColumnHeaders.Add , , "Postnummer" ' SubItems(3)
      .ColumnHeaders.Add , , "E-Mail"    ' SubItems(4)
  End With
End Sub
' ----------------------------- Form1 -----------------------------
Avatar billede sjh Nybegynder
05. december 2005 - 14:07 #10
joern > Ja.. man du kan jo også bare føre musen over den vadi du ønsker at vide hvad er før du trykker på stop ;)
Avatar billede sjh Nybegynder
05. december 2005 - 14:19 #11
joern > ellers kan du teste det sådan:

Private Sub Form_Load()
Dim i As Integer
Dim intRnd As Integer
Dim intRndTest1 As Integer
Dim intRndTest2 As Integer
Dim intRndTest3 As Integer

  Randomize
  intRnd = Int((1000 * Rnd) + 1)
 
  For i = 0 To 2000
    If i = intRnd Then
      intRndTest1 = Int((1000 * Rnd) + 1)
      intRndTest2 = Int((1000 * Rnd) + 1)
      intRndTest3 = Int((1000 * Rnd) + 1)

      Err.Raise intRndTest1, intRndTest2, "Simuller error: Tryk på [Debug] og før musen over fx. intRndTest1"
    End If
  Next
End Sub
Avatar billede mini-me Nybegynder
16. maj 2007 - 11:22 #12
Smid nogle svar og lad os få den lukket
Avatar billede sjh Nybegynder
16. maj 2007 - 21:23 #13
:P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester