Solved

Need help creating a Function

Posted on 2002-03-19
4
145 Views
Last Modified: 2010-05-02
I'm creating a program for a school that tracks students summer reading and gives them bonus points for each book that they read. I need help in creating the Function to calculate points in the following manner:

The first three books are worth 10 points each. The next three are worth 15 points each. And all books over six are worth 20 points each.
0
Comment
Question by:Gmoney
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 52

Expert Comment

by:Ryan Chong
ID: 6881730
Hi Gmoney,

Something like this should works:

Dim points As Long

..

If rs.RecordCount > 6 Then

Points = rs.RecordCount * 20

Else

For i = 1 to rs.RecordCount

Select case i
Case 1 To 3
Points = Points + 10
Case 4 To 6
Points = Points + 20    
End Select

Next i

End If
0
 
LVL 52

Expert Comment

by:Ryan Chong
ID: 6881731
Public Function myPoints(Byval RCount As Long) As Long
Dim Points As Long
If RCount > 6 Then

Points = RCount * 20

Else

For i = 1 to RCount

Select case i
Case 1 To 3
Points = Points + 10
Case 4 To 6
Points = Points + 20    
End Select

Next i
myPoints = Points
End Function
0
 
LVL 1

Accepted Solution

by:
samsonite1023 earned 125 total points
ID: 6881788
Public Function PointsForBooks(numberRead as single) as single
dim tempPoints

If numberRead > 6 Then

   PointsForBooks = 75 + (numberRead - 6)*20

Else

   For i = 1 to numberRead
      Select case i
        Case 1 To 3
           tempPoints = tempPoints + 10
        Case 4 To 6
           tempPoints = tempPoints + 15
      End Select
   Next i

   PointsForBooks = tempPoints

EndIf

End Function


This should do it.
-Sam
0
 
LVL 6

Expert Comment

by:sharmon
ID: 6881842
And yet another way...

Public Function BooksToPoints(ByVal intBooks As Integer) As Integer
    If intBooks > 6 Then
        BooksToPoints = 75 + ((intBooks - 6) * 20)
    ElseIf intBooks > 3 Then
        BooksToPoints = 30 + ((intBooks - 3) * 15)
    ElseIf intBooks > 0 Then
        BooksToPoints = intBooks * 10
    End If
End Function
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…

737 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question