Avatar billede BIRGER Seniormester
19. februar 2004 - 11:26 Der er 10 kommentarer og
1 løsning

se data fra acces

Hej
Jeg har et program der ovf data fra Access til et område i exel.
Jeg vil gerne have vist dataene i stedet i en listbox. Jeg har lavet en userform1 og en listbox1 men jeg kan ikke rigtigt finde ud af syntaksen i Additem..for det må vel være den der skal bruges altså noget med  listbox1.AddItem ??????

Jeg prøver at vedlægge programmet!
Sub Kunde()
        tlfnr = InputBox("indtast tlfnr")
        Dim objConn As ADODB.Connection
        Dim objRS As ADODB.Recordset
        Dim strConnString As String
        Dim strSQL As String
   
        Set objConn = New ADODB.Connection
        Set objRS = New ADODB.Recordset
       
        strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\dokumenter\kartoteker.MDb"
        objConn.Open strConnString
       
        strSQL = "SELECT Kundenr,Navn1, Adresse, postby FROM kundekartotek WHERE tlfnr = " & tlfnr
        objRS.CursorType = adOpenStatic
        objRS.Open strSQL, objConn
       
       
        If Not objRS.EOF Then
           
         
            Range("A1") = objRS("Kundenr")
            Range("a2") = objRS("Navn1")
            Range("a3") = objRS("Adresse")
            Range("a4") = objRS("postby")             
                     
   
    objRS.Close
    objConn.Close
   
    Else
        MsgBox "tlfnr. findes ikke"
       
        End
   
    End If
   
    End Sub
Avatar billede kabbak Professor
19. februar 2004 - 22:11 #1
A = objRS
        If Not objRS.EOF Then
        ListBox1.ColumnCount = 4
        ListBox1.AddItem objRS("Kundenr")
        ListBox1.List(0, 1) = objRS("Navn1")
        ListBox1.List(0, 2) = objRS("Adresse")
        ListBox1.List(0, 3) = objRS("postby")
                     
   
    objRS.Close
    objConn.Close
   
    Else
        MsgBox "tlfnr. findes ikke"
       
        End
   
    End If
Avatar billede kabbak Professor
19. februar 2004 - 22:13 #2
den Første viser i 4 kolonner, hvis det skal være under hinanden  skal det være

        ListBox1.AddItem objRS("Kundenr")
        ListBox1.AddItem  objRS("Navn1")
        ListBox1.AddItem  objRS("Adresse")
        ListBox1.AddItem  objRS("postby")
Avatar billede BIRGER Seniormester
21. februar 2004 - 23:42 #3
jeg har prøvet at indsætte første eksempel,men får en fejlmedd. run time error  424--object required...  skal listboxen...eller userformen aktiveres først måske?
Avatar billede kabbak Professor
21. februar 2004 - 23:53 #4
Du skal kalde den fra userformen, så ja den skal være aktiveret.
Avatar billede kabbak Professor
22. februar 2004 - 00:14 #5
Smid hele din kode ind under en kommando knap i din userform, i stedet for i et modul, som du har nu.
Avatar billede BIRGER Seniormester
22. februar 2004 - 00:25 #6
du har ret .....hvis der nu er flere poster....altså der bliver søgt frem...kan de så også vises samtidig?....den a=objrs...jeg er lidt i tvivl, hvad gør den egenligt?
Avatar billede kabbak Professor
22. februar 2004 - 00:54 #7
Så skal den nok se sådan ud, ikke testet.

Private Sub CommandButton1_Click()
tlfnr = InputBox("indtast tlfnr")
        Dim objConn As ADODB.Connection
        Dim objRS As ADODB.Recordset
        Dim strConnString As String
        Dim strSQL As String
   
        Set objConn = New ADODB.Connection
        Set objRS = New ADODB.Recordset
       
        strConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\dokumenter\kartoteker.MDb"
        objConn.Open strConnString
       
        strSQL = "SELECT Kundenr,Navn1, Adresse, postby FROM kundekartotek WHERE tlfnr = " & tlfnr
        objRS.CursorType = adOpenStatic
        objRS.Open strSQL, objConn
       
       
      ListBox1.ColumnCount = 4
     
  If Not objRS.EOF Then
  I = 0
  Do While Not objRS.EOF
   
    With objRS
        ListBox1.AddItem objRS("Kundenr")
        ListBox1.List(I, 1) = objRS("Navn1")
        ListBox1.List(I, 2) = objRS("Adresse")
        ListBox1.List(I, 3) = objRS("postby")
        I = I + 1
        .MoveNext
      End With
    Loop
   
    objRS.Close
    objConn.Close
   
    Else
        MsgBox "tlfnr. findes ikke"
       
        End
   
    End If

End Sub
Avatar billede kabbak Professor
22. februar 2004 - 01:02 #8
den virker, men sæt lige denne linie på øverst, den tømmer din listbox

ListBox1.Clear
Avatar billede BIRGER Seniormester
22. februar 2004 - 12:42 #9
den funker bare....tak for det....lige et sidste spørgsmål...hvís jeg skulle have kaldt kaldt listboxen via min subrutine kunne det så lade sig gøre med en komando?
Avatar billede kabbak Professor
22. februar 2004 - 22:40 #10
Hvis du dermed mener at du havde beholdt din sub i et modul.
Ja, men du skal stadigvæk have aktiveret din userform først, du kan ikke arbejde med en listbox, der ikke endnu er kendt af excel, der er den først når den er åben.

Så skal du tilføje til din listbox således.

userform1.ListBox1.AddItem objRS("Kundenr")
Avatar billede kabbak Professor
23. februar 2004 - 00:51 #11
tak for pointz ;-))
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