Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


If eller case

Postades av 2002-08-15 22:03:34 - Anders Bengtsson, i forum visual basic - allmänt, Tråden har 7 Kommentarer och lästs av 400 personer

Hej jag har tre checkboxar i mitt program och vill att man ska kunna gå åt sex olika håll.

check1.value = 1
check2.value = 1
check3.value = 1

check1.value = 1
Check2.value = 0
Check3.value = 0

Check1.value = 1
Check2.value = 1
Check3.value = 0

check1.value = 0
check2.value = 1
check3.value = 0

check1.value = 0
Check2.value = 1
Check3.value = 1

Check1.value = 1
Check2.value = 0
Check3.value = 1

Hur ska jag lösa detta, försökte med en If stas men såg att jag inte skulle klara det. Otroligt tacksam för hjälp

Anders


Svara

Sv: If eller case

Postades av 2002-08-15 22:16:30 - Björn Lindahl


Varför skulle inte en if sats funka?

<code>
If Check1.Value = 1 And Check2.Value = 1 And Check3.Value = 1 Then
MsgBox "111"
ElseIf Check1.Value = 1 And Check2.Value = 0 And Check3.Value = 0 Then
MsgBox "100"
ElseIf Check1.Value = 1 And Check2.Value = 1 And Check3.Value = 0 Then
MsgBox "110"
ElseIf Check1.Value = 0 And Check2.Value = 1 And Check3.Value = 0 Then
MsgBox "010"
ElseIf Check1.Value = 0 And Check2.Value = 1 And Check3.Value = 1 Then
MsgBox "011"
ElseIf Check1.Value = 1 And Check2.Value = 0 And Check3.Value = 1 Then
MsgBox "101"
End If
</code>


Svara

Sv: If eller case

Postades av 2002-08-15 22:26:55 - Andreas Hillqvist

Nackdelen med din kod är att i varsta fall 18 jämförelse operationer genomförs. Om man istället använder binärt träd som förebild kan man begränsa det till tre jämförelse oavset utfall:
<code>
If check1.Value Then
If check2.Value Then
If check3.Value Then
MsgBox "111"
Else
MsgBox "110"
End If
Else
If check3.Value Then
MsgBox "101"
Else
MsgBox "100"
End If
End If
Else
If check2.Value Then
If check3.Value Then
MsgBox "011"
Else
MsgBox "010"
End If
Else
If check3.Value Then
MsgBox "001"
Else
MsgBox "000"
End If
End If
End If
</code>


Svara

Sv: If eller case

Postades av 2002-08-15 22:35:08 - Sven Åke Persson

Hej
>If Check1.Value = 1 And Check2.Value = 1 And Check3.Value = 1 Then
Den konstruktionen är onödig och tidskrävande.

Om inte Check.Value = 1 så får progammet göra helt
onödiga kontroller på de övriga And.

Om man tänker på And lösning så är det bättre att skriva
If Check1.Value = 1 Then
If Check2.Value = 1 Then
If Check3.Value = 1 Then
osv osv.

mvh
Sven


Svara

Sv: If eller case

Postades av 2002-08-15 23:08:44 - Sven Åke Persson

Hej
Tillåter mig att visa en annan möjlig lösning.

Option Explicit
Private Sub Command1_Click()
Dim tmpStr As String
tmpStr = Check1.Value & Check2.Value & Check3.Value
Select Case tmpStr
Case "111"
MsgBox tmpStr
Case "100"
MsgBox tmpStr
Case "110"
MsgBox tmpStr
Case "010"
MsgBox tmpStr
Case "011"
MsgBox tmpStr
Case "101"
MsgBox tmpStr
Case Else
MsgBox "Okänt alternativ" ' saknar "000" och "001"
End Select
End Sub

mvh
Sven


Svara

Sv: If eller case

Postades av 2002-08-15 23:26:31 - Anders Bengtsson

Tackar alla för er hjälp


Svara

Sv: If eller case

Postades av 2002-08-16 01:39:45 - Suzanne Ahlvin

Nu ska jag vara lite petig, Gessle. Hoppas inte du tar illa upp men jag skriver detta för att jag själv haft problem med sådant tidigare.

Om man bestämmer sig för att allt ska heta samma sak, förutom siffror efter (ex: case1, case2 osv..)

Då är det bra och mer enkelt att hålla reda på när man skriver sin kod OM man tänker på att skriva på samma sätt.

Jag ser att du skrivit case med litet c ibland och stort C ibland.

Sådant KAN bli förvirrande om man använder till en lång kod.

Bara ett litet tips för att förenkla för sig själv när koderna tenderar att bli större i framtiden.

Ha en fin dag!


Svara

Sv: If eller case

Postades av 2002-08-16 10:12:31 - Anders Bengtsson

? tror du menade att jag skrev check men liten bokstav. Det fanns inte i min kod det där, skulle bara illustrera hur det såg ut, och hur jag ville att det skulle funka.
Men tack för tipset ändå
Med vänliga hälsningar
Anders


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 606
27 953
271 705
464
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies