2011-12-21 25 views
9

Se supone que esta pequeña parte del código se dispara y me da la variable correcta pero no importa lo que contenga la variable "numericDay", el "sufijo" Variable me da "th". no veo por qué no iba a cambiar cuando el valor de "numericDay cambia ambos son variables de cadenaVisual Basic 6.0 Case Statement

Select Case numericDay 
      Case numericDay = "1" Or "21" Or "31" 
       suffix = "st" 
      Case numericDay = "2" Or "22" 
       suffix = "nd" 
      Case numericDay = "3" Or "23" 
       suffix = "rd" 
      Case Else 
      suffix = "th" 

    End Select 
+0

¿Qué es 'numericDay'? – SLaks

+0

@Slaks son ambas variables de cadena. Pensé que escribí eso, pero creo que mi pregunta original fue cortada a medida. no importa y sin preocupaciones, he visto el error en mi sintaxis gracias a la respuesta de nybbler. –

Respuesta

26

Usted ha escrito incorrectamente su selecto Pruebe lo siguiente:..

Select Case numericDay 
      Case "1", "21", "31" 
       suffix = "st" 
      Case "2", "22" 
       suffix = "nd" 
      Case "3", "23" 
       suffix = "rd" 
      Case Else 
       suffix = "th" 
    End Select 

para futuras consultas: http://www.vb6.us/tutorials/learn-if-else-and-select-statements-vb6

+0

muchas gracias :) –

+3

+1 Para referencia futura también puede probar el manual http://msdn.microsoft.com/en-us/library/aa266274(v=VS.60).aspx – MarkJ

6

Según the msdn que debería haber escrito así:

Select Case numericDay 
     Case "1", "21", "31" 
      suffix = "st" 
     Case "2", "22" 
      suffix = "nd" 
     Case "3", "23" 
      suffix = "rd" 
     Case Else 
     suffix = "th" 
End Select 
3

"2" Or "22" hará un bytewise o con 2 y 22, que corresponde a 22.