By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,294 Members | 2,517 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,294 IT Pros & Developers. It's quick & easy.

If function problem

P: 6
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
Share this Question
Share on Google+
14 Replies


100+
P: 759
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

P: 6
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
Expert Mod 15k+
P: 31,494
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

P: 6
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
Expert Mod 15k+
P: 31,494
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

P: 6
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
Expert Mod 10K+
P: 12,366
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

P: 6
Hmm, maybe you have suggestions how I could solve this problem?
Dec 22 '11 #9

NeoPa
Expert Mod 15k+
P: 31,494
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
Expert Mod 15k+
P: 31,494
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
Expert Mod 10K+
P: 12,366
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

P: 6
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
Expert Mod 15k+
P: 31,494
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
Expert Mod 10K+
P: 12,366
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

Post your reply

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