473,473 Members | 2,248 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

If function problem

6 New Member
Hello everyone, I got some problems with one of my codes. I am making a database where a person can tick boxes and chose 60credits from existing 120. But somehow my if function does not calculate the total..and at the end I get Message "Please chose 30credits per semester"

I would appreciate some help! Thank you :)

Expand|Select|Wrap|Line Numbers
  1.  
  2.  
  3. Option Compare Database
  4.  
  5. Private Sub ModuleOptions_Click()
  6.  
  7. Dim International_Business_1 As Integer
  8. Dim Business_Programming_1 As Integer
  9. Dim Decision_Making As Integer
  10. Dim Change_Management As Integer
  11. Dim Business_Planning As Integer
  12. Dim Small_Business_Issues As Integer
  13. Dim Decision_Analysis As Integer
  14. Dim International_Business_2 As Integer
  15. Dim Business_Programming_2 As Integer
  16. Dim Business_Finance As Integer
  17. Dim Corporate_Strategy As Integer
  18. Dim Career_Management As Integer
  19. Dim Business_Ethics As Integer
  20. Dim Corporate_Finance As Integer
  21. Dim Semester1 As Integer
  22. Dim Semester2 As Integer
  23.  
  24. Semester1 = 0
  25. Semester2 = 0
  26.  
  27. If International_Business_1 = 0 And International_Business_2 = 20 Then
  28.     MsgBox "You cannot select International Business 2 in semester 2 unless International Business 1 in semester 1 is selected.", vbCritical, "Incorrect choice"
  29.     Exit Sub
  30. End If
  31.  
  32. If Business_Programming_1 = 0 And Business_Programming_2 = 20 Then
  33.     MsgBox "You cannot select Business Programming 2 in semester 2 unless Business Programming 1 in semester 1 is selected.", vbCritical, "Incorrect choice"
  34.     Exit Sub
  35. End If
  36.  
  37. If Decision_Making = 20 And Decision_Analysis = 10 Then
  38.     MsgBox "You cannot select both Decision Making and Decision Analysis because of the common material shared", vbCritical, "Incorrect choice"
  39.     Exit Sub
  40. End If
  41.  
  42. If Business_Finance = 20 And Corporate_Finance = 10 Then
  43.     MsgBox "You cannot select both Business Finance and Corporate Finance because of the common material shared", vbCritical, "Incorrect choice"
  44.     Exit Sub
  45. End If
  46.  
  47. If Business_Planning = 10 And Corporate_Strategy = 10 Then
  48.     MsgBox "You cannot select both Business Planning and Corporate Strategy because of the common material shared", vbCritical, "Incorrect choice"
  49.     Exit Sub
  50. End If
  51.  
  52. If Management_Dissertation = 20 Then
  53.  
  54.     Semester1 = Semester1 + 10
  55.     Semester2 = Semester2 + 10
  56. End If
  57.  
  58. InternationalBusiness1.Value = International_Business_1
  59. BusinessProgramming1.Value = Business_Programming_1
  60. DecisionMaking.Value = Decision_Making
  61. ChangeManagement.Value = Change_Management
  62. BusinessPlanning.Value = Business_Planning
  63. SmallBusinessIssues.Value = Small_Business_Issues
  64. DecisionAnalysis.Value = Decision_Analysis
  65. InternationalBusiness2.Value = International_Business_2
  66. BusinessProgramming2.Value = Business_Programming_2
  67. BusinessFinance.Value = Business_Finance
  68. CorporateStrategy.Value = Corporate_Strategy
  69. CareerManagement.Value = Career_Management
  70. BusinessEthics.Value = Business_Ethics
  71. CorporateFinance.Value = Corporate_Finance
  72.  
  73. Semester1 = (Semester1 + International_Business_1 + Business_Programming_1 + Decision_Making + Change_Management + Business_Planning + Small_Business_Issues + Decision_Analysis)
  74. Semester2 = (Semester2 + International_Business_2 + Business_Programming_2 + Business_Finance + Corporate_Strategy + Career_Management + Business_Ethics + Corporate_Strategy)
  75.  
  76. If Semester1 <> 30 Or Semester2 <> 30 Then
  77.     MsgBox "Each semester should consist of 30 credits.", vbOKOnly + vbCritical, "Incorrect choice"
  78.     Exit Sub
  79. Else
  80.     MsgBox "Thank you for your time. Confirmation letter has been sent to your email adress.", vbOKOnly + vbExclamation, "Choice confirmation"
  81. End If
  82.  
  83. DoCmd.RunCommand acCmdSaveRecord
  84. DoCmd.OpenReport "Module Options", acViewPreview, , "[StudentID] = '" & [StudentID] & "'"
  85.  
  86. End Sub
  87.  
  88.  
Dec 22 '11 #1
14 1532
Mihail
759 Contributor
Jar !
From my practice I can say that more conditions after IF = more troubles.
Of course, the full skilled coders can handle that very well. But only they.
My advice is to use parenthesis in order to say to VBA exactly what you wish. As example:

Instead:
Expand|Select|Wrap|Line Numbers
  1. If International_Business_1 = 0 And International_Business_2 = 20 Then


use this:
Expand|Select|Wrap|Line Numbers
  1. If (International_Business_1 = 0) And (International_Business_2 = 20) Then


Good luck !
Dec 22 '11 #2
Jaroslavu
6 New Member
Dear Mihail,

Thank for your time, but your solution does not solve my problem. I tried to use brackets in my if statements and it still does not calculate the variables..

Jaroslav ;(
Dec 22 '11 #3
NeoPa
32,556 Recognized Expert Moderator MVP
Well, let's start with the basics and send you to base-camp (When Posting (VBA or SQL) Code) first. When we have a proper question we can think about looking at it for you.
Dec 22 '11 #4
Jaroslavu
6 New Member
Dear NeoPa,

Sorry for misunderstanding, I am beginner at VBA for Access. The code that I have written is the one that goes on button. There is a Form where a user can tick the boxes and select modules he do want to study. After a selection of boxes user presses button and the IF function that I have written above should state whether 60credits in total (30 1semester and 30 2semester) were selected. I tried different approached to code this, but somehow I think that, there might be a mistake in line 73 and 74..but I am not sure about that.

Will appreciate any sort of help.

Thank You
Dec 22 '11 #5
NeoPa
32,556 Recognized Expert Moderator MVP
I did just try to help - but you've ignored it.

Go back to the linked page and at least follow the instructions found there. Being a beginner in Access is no reason for failing to follow simple instructions on what you must do when asking a question.
Dec 22 '11 #6
Jaroslavu
6 New Member
NeoPa,

Sorry probably you did get me wrong. The problem is that I did debug and it does not show any errors at all. Everything seems to work fine, but at the end - when i chose the options..no matter what options I chose 10 or 120credits it shows the same message that is on the line 77

Expand|Select|Wrap|Line Numbers
  1.  
  2. "Each semester should consist of 30 credits."
  3.  
  4.  
Dec 22 '11 #7
Rabbit
12,516 Recognized Expert Moderator MVP
You've created a bunch of integer variables that you never initialize. Therefore, their value is going to be 0. You then try to compare those variables to constants. Which isn't going to get you anywhere because they're never going to match since they're always 0. And then you attempt to set some, what I assume to be, controls with the values of those variables, which is always 0. And finally, you add those variables together. Which is always 0. So it doesn't matter what you check, it's always 0.
Dec 22 '11 #8
Jaroslavu
6 New Member
Hmm, maybe you have suggestions how I could solve this problem?
Dec 22 '11 #9
NeoPa
32,556 Recognized Expert Moderator MVP
Jaroslavu:
The problem is that I did debug and it does not show any errors at all.
I assume you're referring to a compile. I'm glad you at least managed to follow that instruction, though it would have been almost pointless without the Option Explicit unfortunately.
Jaroslavu:
Sorry probably you did get me wrong.
Your code doesn't have Option Explicit set. Compiling without that is more than 50% useless. This is the third post on the same issue. In what way did I remotely get you wrong?

I suspect Rabbit has outlined your main problems for you anyway, but I refuse to work on code that doesn't even have the basics done properly first. It's not like it's complicated or anything.
Dec 22 '11 #10
NeoPa
32,556 Recognized Expert Moderator MVP
Jaroslavu:
Hmm, maybe you have suggestions how I could solve this problem?
Determine in your head first what you want the code to do. When this is clear and makes sense, create code to implement this logic. When such situations are clearly understood these types of errors are pretty rare.
Dec 22 '11 #11
Rabbit
12,516 Recognized Expert Moderator MVP
My suggestion, if it wasn't clear from my overuse of the phrase, is to initialize your variables so they're not 0. But even if you do that, the logic doesn't make much sense. I can only tell you what is wrong with your current code, I can't tell you what your logic is.
Dec 22 '11 #12
Jaroslavu
6 New Member
Sorry for annoying you..and Thanks for help. But to be honest I don't have any patience any more to work on this code..its jus driving me crazy
Dec 22 '11 #13
NeoPa
32,556 Recognized Expert Moderator MVP
It sounds like software development isn't really your thing. SD takes a particular way of thinking which doesn't seem to be your way. That's only a bad thing if you think it is. Many people do perfectly well in other areas.
Dec 22 '11 #14
Rabbit
12,516 Recognized Expert Moderator MVP
Let's use a simpler example and see if you notice where you went wrong.
Expand|Select|Wrap|Line Numbers
  1. Dim x As Integer
  2.  
  3. If x = 10 Then
  4.    MsgBox "Success"
  5. End If
What's x? When will you see the message box? Why is it impossible for the message box to show? If we ignore all business logic, this example shows why your code doesn't work.
Dec 22 '11 #15

Sign in to post your reply or Sign up for a free account.

Similar topics

4
by: rcb845 | last post by:
Hi everybody of the PHP community, I am using the php function "getimagesize()" to access the width/height of an image from the Web. This function should return false if image is not available....
11
by: Kostatus | last post by:
I have a virtual function in a base class, which is then overwritten by a function of the same name in a publically derived class. When I call the function using a pointer to the derived class...
1
by: Dwayne Epps | last post by:
This is probably a no brainer, but I am having no luck at getting this to work. I'm creating functions that will validate form data fields. For example, the following function: function...
3
by: Tomaz Rotovnik | last post by:
Hi I created very simple dll (vc++) which has three functions (start, stop and initialization). it starts capturing sound from soundblaster and when the buffer is filled with the data, dll calls...
5
by: Ian Davies | last post by:
Dear Access expert I am trying to use an mde application developed in Access2k with Access 2002. I get an Access error box: Function is not available.. Date() etc. Is Access 2002 back...
8
by: Mantorok Redgormor | last post by:
I have ran into a problem where I have a struct that has a member which contains a pointer to function and is initialized to a function in the initializer list. With my array of structs of this...
1
by: Nacho | last post by:
Hello.. I have one problem with my reusable function to validate date.. I want to use this function to all my web project no validate date, but It's works fine if I have one textbox to...
3
by: dice | last post by:
Hi, In order to use an external api call that requires a function pointer I am currently creating static wrappers to call my objects functions. I want to re-jig this so I only need 1 static...
3
by: ryan.mitchley | last post by:
Hi all I have a class (cPort) that is designed to receive objects and, depending on the type, call a handler (callback) in any descendant of a cProcessBlock class. Callback functions take a...
10
by: Constantine AI | last post by:
Hi i am having a little problem with an equation function that was created from all your help previously. The function works fine itself but with a small glitch within it. Here is the function...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.