Tjenare! <code> Nej nu missuppfattade du mig. Begriper jag väl ! Underskatta mig inte ! Kan det vara så¨att du egentligen vill ha : Mitt strå till stacken:Select case!!
Har en select case på form1 som skall hämta index från form2. På Form2 har jag 4 (fyra) optionknappar men får inte select casen att framföra det jag önskar
<code>
Select Case Form2.Option1(Index)
Case 0
MsgBox "0"
Case 1
MsgBox "1"
Case 2
MsgBox "2"
case 3
msgbox"3"
End Select
</code>
Markerar jag option1(0) så får jag fram 1, alla dom andra får jag 0. Varför?
Säkert något lätt:)Sv: Select case!!
Option Explicit
Private Sub Form_Load()
Form2.Show
End Sub
Private Sub Command1_Click()
Dim i As Long
For i = 0 To 3 'antal Option:s här 0 To 3 Dvs 4 st
If Form2.Option1(i).Value = True Then MsgBox i
Next ' i
End Sub
</code>
Dvs ett fall där If är bättre än Select Case
Sven som alltid kollar Select Case före IfSv:Select case!!
I min kod hade jag bara msgboxarna för att få fram ett case värde. Vid varje case så har jag en del kod.
Markerar jag option1(0) så skall jag väl få fram värde 0 i msg box
Markerar jag option1(1) så skall jag väl få fram värde 1 i msg box
Markerar jag option1(2) så skall jag väl få fram värde 2 i msg box
men Markerar jag option1(0) så får jag fram 1, alla dom andra får jag 0. Varför? Sv: Select case!!
Hela koden är "bull" .Gå och lägg dig Tänk om !Sv: Select case!!
<code>
Select Case Form2.Option1.Index
</code>
För om du skriver
<code>
Select Case Form2.Option1(Index)
</code>
så blir den ju True eller False beroende på om just den är vald eller inte, och det brukar konverteras till 0 resp 1 i VB.Sv: Select case!!
Private Function SelectedIndex(Options) As Integer
Dim opt As OptionButton
For Each opt In Options
If opt.Value Then
SelectedIndex = opt.Index
Exit For
End If
Next
End Function
Private Sub Command1_Click()
Select Case SelectedIndex(Form2.Option1)
Case 0
MsgBox "0"
Case 1
MsgBox "1"
Case 2
MsgBox "2"
Case 3
MsgBox "3"
End Select
End Sub