Avatar billede mvm Nybegynder
14. juni 2011 - 20:23 Der er 11 kommentarer og
1 løsning

vba combobox og listindex

river mig i håret. jeg har denne public sub:

Public Sub Populate_K_projects()

Dim Myconn As New ADODB.Connection
Dim MyCommand As New ADODB.Command
Dim MyConnString As String
Dim MyRs As ADODB.Recordset
Dim MyIx As Integer

On Error GoTo MyError

K_projects.SetFocus
K_projects.RowSource = ""
K_projects.Value = ""

MyConnString = get_conn_string_git()
Myconn.Open (MyConnString)

Set MyCommand.ActiveConnection = Myconn

Select Case R_all_alternatives
    Case 1
        MyCommand.CommandText = "select ID, Description " & _
                                "from project_elements order by description"
    Case 2
        MyCommand.CommandText = "select ID, Description " & _
                                "from project_elements " & _
                                "where end_date >= getdate() " & _
                                "or end_date is null " & _
                                "order by description "
    Case 3
        MyCommand.CommandText = "select ID, Description " & _
                                "from project_elements " & _
                                "where end_date < getdate() " & _
                                "order by description "
End Select

MyCommand.CommandType = adCmdText

Set MyRs = MyCommand.Execute

K_projects.ColumnCount = 2
K_projects.AddItem ";Name"
K_projects.ColumnWidths = "0cm;5cm"
K_projects.ColumnHeads = True

Do While Not MyRs.EOF
  K_projects.AddItem MyRs.Fields(0).Value & ";" & _
                      MyRs.Fields(1).Value
  MyRs.MoveNext
Loop

Me.K_projects.SetFocus
Me.K_projects.ListIndex = 0


MyExit:
    On Error Resume Next
    Set MyRs = Nothing
    Set MyCommand = Nothing
    Myconn.Close
    Set Myconn = Nothing
    Exit Sub

MyError:
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure populate k_projects"
    GoTo MyExit
End Sub



Når jeg kalder fra form_load event går det fint (case 1 er default). Når jeg kalder fra click event på selection alternativerne ryger jeg ned i fejl 7777 nr jeg prøver at sætte listindex til 0.

hvad er forskellen????
Avatar billede terry Ekspert
14. juni 2011 - 20:56 #1
try debugging and step through th ecode to see whats happening
Avatar billede fdata Forsker
14. juni 2011 - 22:14 #2
Hvis du googler lidt på fejl 7777, vil du se at mange mener, at ListIndex (vist nok) er ReadOnly. Man anbefaler brugen af ItemData i stedet.

Se evt. http://www.pcreview.co.uk/forums/error-7777-a-t3639752.html (sidste post). Det lader til at du kan fange fejlen.
Avatar billede mvm Nybegynder
15. juni 2011 - 00:10 #3
hmm jo - men at løse problemet ved at undlade at reagere på fejl er ikke lige det jeg havde tænkt mig :-)
Avatar billede mvm Nybegynder
15. juni 2011 - 00:11 #4
Did that - but cannot se any difference. The error fires when I try to set listindex = 0
Avatar billede hugopedersen Nybegynder
15. juni 2011 - 07:54 #5
Jamen hvis listindex er read only så er det vel narturligt at du får en fejl.
Hvad er det du vil opnå ved at sætte listindex til 0 på en combobox?

Er det for at vælge første element på listen som standard, så er det da Itemdata du skal bruge.
Avatar billede mvm Nybegynder
15. juni 2011 - 15:05 #6
Hej Hugo.

Ja - formålet er at vise det første element på listen - istedet for en tom boks. Hvis du læser i msdn så kan du gøre dette med listindex, når blot kontrollen har focus først - derfor .setfocus umiddelbart før.

hedder det så combobox.itemdata(0) ??
Avatar billede mvm Nybegynder
15. juni 2011 - 15:09 #7
Avatar billede hugopedersen Nybegynder
15. juni 2011 - 16:20 #8
Me.cboName = Me.cboName.ItemData(0) viser første element fra listen

Det har været den måde jeg har anvendt siden jeg startede med Access i 1994 :-)
Avatar billede mvm Nybegynder
15. juni 2011 - 22:47 #9
Hej igen hugo - den var lige i øjet. Svarer med point til dig - skal du sende en løsning?

dog bruger jeg cbo.value = cbo.itemdata(0)

starter nyt spændende spørgsmål omkring dato - meget gerne hjælpe hvis du vil.

overskrift: Dato vender i access.
Avatar billede hugopedersen Nybegynder
16. juni 2011 - 06:59 #10
Jamen så svarer jeg da :-)

Datoen har du selv fundet ud af ser det ud til.
Men eller er formatet

mm-dd-yyyy hvis det er en JET database (standard Access)
yyyy/mm/dd hvis det er MS SQL
yyyy-mm-dd hvis det er MySQL

Så det er ikke nemt :-)
Avatar billede hugopedersen Nybegynder
16. juni 2011 - 07:00 #11
Ja det blev så kun en kommentar
Avatar billede hugopedersen Nybegynder
17. juni 2011 - 07:03 #12
TNX for point
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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