Min fråga lyder: Ska vara intAvd1(0) = 0. Testa: Ska vara intAvd1(0) = 0. Testa: Skapa en array av checkboxarna som Andreas beskrivit. Menar du nåt sånt här? Tack för att alla säller upp!!! Tack för att alla säller upp!!! varför använda sig av en separat Array när du kan använda checkboxarna som en array? Pice of cake: Varje Avdelning är en array är det fel? Hmmm, det är möjligt att jag inte förstår eller också tänker vi olika. Stort tack att du hjälper mig men jag får det inte att fungera. Skulle du kunna vara så snäll att skicka din mail adress till thomas@swedart.se så kanske jag får skicka programmet i helhet så du kan titta på var felet ligger....Fråga om checkbox och arrayer
Jag har 14st checkboxar som är kopplade till en array d.v.s. att när man
markerar första boxen så ska värdet för den skickas till element 1 i arrayen. Så långt är allt som det ska. Jag har en textruta bredvid som direkt visa ifall en eller flera checkboxar har markerats ungefär så här
1,2,3,4 . Varje siffra ska vara ett element. allt detta kan jag fixa men problemet är ifall jag avmarkerar en vald checkbox så kan jag inte få bort respektive siffra i textfältet. Här under har jag en del av koden till en chkruta....
Private Sub chkAvd1_1_Click()
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1.Value = 1) Then
intAvd1(0) = 1
txtAvd1.Text = txtAvd1.Text & (intAvd1(0) & " ")
Else
intAvd1(0) = 1
txtAvd1.Text = txtAvd1.Text - (intAvd1(0) & " ")
End If
End SubSv: Fråga om checkbox och arrayer
<code>
Private Sub chkAvd1_1_Click()
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1.Value = 1) Then
intAvd1(0) = 1
Else
intAvd1(0) = 0
End If
txtAvd1.Text = CStr(intAvd1(0))
End Sub
</code>
Tips. Skapa en kontroll array av chekboxarna. Gör så här:<br>
* Skapa en checkbox<br>
* Sätt egenskapen Index = 0<br>
* Kopiera och klistra in så många kontroller du vill ha<br>
* Gör samma sak för textboxarna<br>
<br>
Behöver du bara följande kod:
<code>
Private Sub chkAvd1_Click(Index As Integer)
' Lägger till värde i rätt ellement i Arrayen
If chkAvd1(Index).Value = vbChecked Then
intAvd1(Index) = 1
Else
intAvd1(Index) = 0
End If
txtAvd1(Index).Text = CStr(intAvd1(Index))
End Sub
</code>
Slipper du ha en kod för varje kontroll. Sv: Fråga om checkbox och arrayer
Private Sub chkAvd1_1_Click()
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1.Value = 1) Then
intAvd1(0) = 1
Else
intAvd1(0) = 0
End If
txtAvd1.Text = CStr(intAvd1(0))
End Sub
Självklart ska
Else
intAvd(0) =0
det hade kommit till ett fel, vid senare tillfälle...
txtAvd1.Text = CStr(intAvd1(0)) gjorde det lättare men
den visar fortfarande en siffra i txtFältet. Jag har försökt att
tömma arrayen så att den inte visar något men har inte kommit på det...
Jag vill alltså att när man markerar boxen så ska det visa en siffra(value) i ett text fönster men tar jag bort markeringen så ska även siffran försvinna helt. Man nu visar arrayen:s element siffran noll.
Här hämst tacksam för ett snabbt svar.
/M.v.h. ThomasSv: Fråga om checkbox och arrayer
Använd sedan denna kod (med modifiering av namn på komp.)
Private Sub Check1_Click(Index As Integer)
Dim i As Byte
Text1.Text = ""
For i = 0 To Check1.Count - 1
If Check1(i).Value = 1 Then
If Text1.Text <> "" Then
Text1.Text = Text1.Text & ","
End If
Text1.Text = Text1.Text & i + 1
End If
Next i
End Sub
Får se om jag fattade frågan rätt. Lycka till.Sv: Fråga om checkbox och arrayer
<code>
Private Sub chkAvd1_1_Click()
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1.Value = vbChecked) Then
intAvd1(0) = 1
txtAvd1.Text = CStr(intAvd1(0))
Else
intAvd1(0) = 0
txtAvd1.Text = ""
End If
End Sub
</code>
Eller kanske såhär?
<code>
Private Sub chkAvd1_1_Click()
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1.Value = vbChecked) Then
txtAvd1.Text = CStr(intAvd1(0))
Else
txtAvd1.Text = ""
End If
End Sub
</code>Sv: Fråga om checkbox och arrayer
Jag ska förklara lite närmre vad jag ska göra...
Jag håller på med ett V75 program.
Jag ska ha en checkboxs som representerar varje häst i t.ex. Avd1 som jag döper till chkAvd1_1 ,chkAvd1_2 osv. bredvid ska jag ha en textbox som samlar ihop alla hästar som är förbokade. Ungefär så här 2,10,11
Det är viktigt att man ska kunna ångra sig ifall man har bockat för en häst. Helst ska man se enbart 1 och inget kommatecken ifall man valt en häst bara. Men har man valt flera hästar i varje avdelning ska kommatecken finnas mellan varje häst.
Allt bygger på att en array ska fyllas med 15 hästar(element) som sedan ska visas i textfönstret bredvid, men bara det förbockade....
Tack på förhand /Thomas
OBS! koden under fungerar enbart med en häst än så länge
Private Sub chkAvd1_1_Click(index As Integer)
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1(index).Value = vbChecked) Then
intAvd1(index) = 1
Else
intAvd1(index) = 0
End If
txtAvd1.Text = CStr(intAvd1(index))
Dim i As Byte
txtAvd1.Text = ""
For i = 0 To chkAvd1_1.Count - 1
If chkAvd1_1(i).Value = 1 Then
If txtAvd1.Text <> "" Then
txtAvd1.Text = txtAvd1.Text & ","
End If
txtAvd1.Text = txtAvd1.Text & i + 1
End If
Next
End SubSv: Fråga om checkbox och arrayer
Jag ska förklara lite närmre vad jag ska göra...
Jag håller på med ett V75 program.
Jag ska ha en checkboxs som representerar varje häst i t.ex. Avd1 som jag döper till chkAvd1_1 ,chkAvd1_2 osv. bredvid ska jag ha en textbox som samlar ihop alla hästar som är förbokade. Ungefär så här 2,10,11
Det är viktigt att man ska kunna ångra sig ifall man har bockat för en häst. Helst ska man se enbart 1 och inget kommatecken ifall man valt en häst bara. Men har man valt flera hästar i varje avdelning ska kommatecken finnas mellan varje häst.
Allt bygger på att en array ska fyllas med 15 hästar(element) som sedan ska visas i textfönstret bredvid, men bara det förbockade....
Tack på förhand /Thomas
OBS! koden under fungerar enbart med en häst än så länge
Private Sub chkAvd1_1_Click(index As Integer)
' Lägger till värde i rätt ellement i Arrayen
If (chkAvd1_1(index).Value = vbChecked) Then
intAvd1(index) = 1
Else
intAvd1(index) = 0
End If
txtAvd1.Text = CStr(intAvd1(index))
Dim i As Byte
txtAvd1.Text = ""
For i = 0 To chkAvd1_1.Count - 1
If chkAvd1_1(i).Value = 1 Then
If txtAvd1.Text <> "" Then
txtAvd1.Text = txtAvd1.Text & ","
End If
txtAvd1.Text = txtAvd1.Text & i + 1
End If
Next
End SubSv: Fråga om checkbox och arrayer
Sv: Fråga om checkbox och arrayer
<code>
Private Sub chkAvd1_1_Click(index As Integer)
Dim Index as Long
Dim chkBox as CheckBox
Dim sTemp as string
If (chkAvd1_1(index).Value = vbChecked) Then
intAvd1(index) = 1
Else
intAvd1(index) = 0
End If
For each chkBox In chkAvd1_1
Index = Index + 1
IF chkBox.Value = vbChecked Then
sTemp = sTemp & ", " & Index
End IF
Next
txtAvd1.Text = Mid(sTemp, 3)
End Sub
</code>Sv: Fråga om checkbox och arrayer
Avd1(14)=(chkAvd1_1,chkAvd1_2,o.s.v.)
Det ska alltså ligga en häst(checkbox) i varje element i Avd1 är det fel?Sv: Fråga om checkbox och arrayer
Jag, personligen skulle använda mig av EN checkbox som kopieras upp i 15 exemplar per avdelning. Genom att loopa igenom dessa så ser inte jag någon anledning till att använda sig av en separat array.
Använder du dig av samma checkboxar för varje avdelning kan jag iofs förstå att mitt resonemang inte håller.
Ps. Blir du miljonär på ditt system så kan du ju höra av dig!!Sv: Fråga om checkbox och arrayer
/Thomas