Results 1 to 9 of 9

Thread: Select Case it isn´t working

  1. #1

    Thread Starter
    Junior Member
    Join Date
    Mar 2000
    Location
    Mexico
    Posts
    16

    Angry

    I´m trying to compare time using the next code

    fec = Now
    Select Case fec
    Case Is > #8:29:00 AM# And fec < #9:01:00 AM#
    -----------------
    ----------------
    Case Is > #9:00:00 AM# And fec < #1:51:00 PM#

    For example at the time I test this code the variable fec =

    Watch : : fec : 28/10/00 02:07:34 p.m. : Date :

    and the firt CASE take it as if (fec) was in that range I also use:

    fec = Now
    Select Case fec
    Case #8:29:00 AM# TO #9:01:00 AM#
    -----------------
    ----------------
    Case #9:00:00 AM# TO #1:51:00 PM#

    but it din´t work either.

    Any ideas.

    Thanks...

  2. #2
    The Devil crptcblade's Avatar
    Join Date
    Aug 2000
    Location
    Quetzalshacatenango
    Posts
    9,091

    do you get an error?

    Did you use an End Select at the end?

  3. #3

    Thread Starter
    Junior Member
    Join Date
    Mar 2000
    Location
    Mexico
    Posts
    16

    Talking

    Yes I did

    this is the complete sub

    Private Sub hora()
    fec = Now
    Select Case fec
    Case Is > #8:29:00 AM# And fec < #9:01:00 AM#
    numempa = numemp & LTrim("E")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #9:00:00 AM#
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case Is > #9:00:00 AM# And fec < #1:51:00 PM#
    numempa = numemp & LTrim("E")
    Call GetAsist(numempa)
    If flag = False Then
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case Is > #1:50:00 PM# And fec < #2:31:00 PM#
    numempa = numemp & LTrim("SC")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #2:00:00 PM#
    AddToDatabase (numempa)
    Else
    MsgBox "La salida a comer para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case Is > #2:30:00 PM# And fec < #3:06:00 PM#
    numempa = numemp & LTrim("EC")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #3:00:00 PM#
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada de comer para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case Is > #3:05:00 PM# And fec < #6:11:00 PM#
    numempa = numemp & LTrim("EC")
    Call GetAsist(numempa)
    If flag = False Then
    fec = Now
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada de comer para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case Is > #6:10:00 PM# And fec < #6:51:00 PM#
    numempa = numemp & LTrim("S")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #6:30:00 PM#
    AddToDatabase (numempa)
    Else
    MsgBox "La salida para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case Is > #6:50:00 PM# And fec < #11:01:00 PM#
    numempa = numemp & LTrim("S")
    Call GetAsist(numempa)
    If flag = False Then
    fec = Now
    AddToDatabase (numempa)
    Else
    MsgBox "La salida para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    End Select
    txtnumemp.Text = ""
    End Sub

  4. #4
    Guest
    I may be wrong, but I do not think you can have AND in a select case clause. It sort of defeats the object.

    It seems an extremely bizarre way to do things. Change over to If...Then...ElseIf...end structure, and you'll have no problems.

  5. #5
    Guest
    alternatively...

    Case Is #8:29:00 AM# To #9:01:00 AM#

  6. #6

    Thread Starter
    Junior Member
    Join Date
    Mar 2000
    Location
    Mexico
    Posts
    16

    Red face

    Well about using the AND in the select case statment I found this in MSDN.

    Dim Number
    Number = 8 ' Initialize variable.
    Select Case Number ' Evaluate Number.
    Case 1 To 5 ' Number between 1 and 5.
    Debug.Print "Between 1 and 5"
    ' The following is the only Case clause that evaluates to True.
    Case 6, 7, 8 ' Number between 6 and 8.
    Debug.Print "Between 6 and 8"
    Case Is > 8 And Number < 11 ' Number is 9 or 10.
    Debug.Print "Greater than 8"
    Case Else ' Other values.
    Debug.Print "Not between 1 and 10"
    End Select

  7. #7

    Thread Starter
    Junior Member
    Join Date
    Mar 2000
    Location
    Mexico
    Posts
    16

    Unhappy

    Thanks wossname, but using your alternative I get this

    Compile error:
    Expected : = or <> or > or < ......

  8. #8
    Guest
    this code gives me no errors:

    Code:
    Dim i
    i = 2
    
    Select Case i
        Case 1, 2
            MsgBox "HELLO"
        Case 2 To 4
            Beep
    End Select
    so perhaps its because your using "#" to define dates. Use the dateserial() function instead. that might work

  9. #9
    Hyperactive Member D12Bit's Avatar
    Join Date
    Oct 2000
    Location
    Guatemala
    Posts
    373

    Lightbulb ¿Porque no pruebas esto?

    ¿Podrías Copiar y Pegar esto?


    Code:
    Private Sub hora()
    fec = Format(Now, "hh:mm:ss AMPM")
    Select Case fec
    Case #8:29:00 AM# To #9:01:00 AM#
    numempa = numemp & LTrim("E")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #9:00:00 AM#
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case #9:00:00 AM# To #1:51:00 PM#
    numempa = numemp & LTrim("E")
    Call GetAsist(numempa)
    If flag = False Then
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case #1:50:00 PM# To #2:31:00 PM#
    numempa = numemp & LTrim("SC")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #2:00:00 PM#
    AddToDatabase (numempa)
    Else
    MsgBox "La salida a comer para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case #2:30:00 PM# To #3:06:00 PM#
    numempa = numemp & LTrim("EC")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #3:00:00 PM#
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada de comer para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case #3:05:00 PM# To #6:11:00 PM#
    numempa = numemp & LTrim("EC")
    Call GetAsist(numempa)
    If flag = False Then
    fec = Now
    AddToDatabase (numempa)
    Else
    MsgBox "La entrada de comer para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case #6:10:00 PM# To #6:51:00 PM#
    numempa = numemp & LTrim("S")
    Call GetAsist(numempa)
    If flag = False Then
    fec = #6:30:00 PM#
    AddToDatabase (numempa)
    Else
    MsgBox "La salida para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    Case #6:50:00 PM# To #11:01:00 PM#
    numempa = numemp & LTrim("S")
    Call GetAsist(numempa)
    If flag = False Then
    fec = Now
    AddToDatabase (numempa)
    Else
    MsgBox "La salida para este empleado ya ha sido marcada", vbOKOnly, "Aviso"
    End If
    End Select
    txtnumemp.Text = ""
    End Sub

    Y luego me Cuentas...


    [Edited by D12Bit on 10-28-2000 at 05:56 PM]
    "Who Dares Wins" - "Quien se Arriesga Gana"
    Mail me at:

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width