Here is what my database does: On my standard forms, I have quite a few images that are displayed. They are placed at random locations throughout the forms, and although the pcitures stay the same for every form, they are sometimes in different locations or come in different sizes because of form design, etc. This is a sample of the current code:
Expand|Select|Wrap|Line Numbers
- Private Sub Form_Open(Cancel As Integer)
- On Error GoTo EH
- Me.Pic1.Picture = strDBASEPATH & "IMAGES\Pic1.jpg"
- Me.Pic2.Picture = strDBASEPATH & "IMAGES\Pic2.jpg"
- Me.Pic3.Picture = strDBASEPATH & "IMAGES\Pic3.jpg"
- Me.Pic4.Picture = strDBASEPATH & "IMAGES\Pic4.jpg"
- Me.Pic5.Picture = strDBASEPATH & "IMAGES\Pic5.jpg"
- Exit Sub
- EH:
- MsgBox "Error initializing Form! Please contact your Database Administrator.", vbCritical, "Error!"
- Exit Sub
- End Sub
What I want to do is create a Function in a module that receives the current Form name, and sets the images for those controls on the main form from which the function is called. This is what I have right now:
On the main form:
Expand|Select|Wrap|Line Numbers
- Private Sub Form_Open(Cancel As Integer)
- On Error GoTo EH
- DisplayImages Me.Form.Name
- Exit Sub
- EH:
- MsgBox "Error initializing Form! Please contact your Database Administrator.", vbCritical, "Error!"
- Exit Sub
- End Sub
Expand|Select|Wrap|Line Numbers
- Public Function DisplayImages(FormName As String)
- On Error GoTo EH
- Forms!FormName!Pic1.Picture = strDBASEPATH & "IMAGES\Pic1.jpg"
- Forms!FormName!Pic2.Picture = strDBASEPATH & "IMAGES\Pic2.jpg"
- Forms!FormName!Pic3.Picture = strDBASEPATH & "IMAGES\Pic3.jpg"
- Forms!FormName!Pic4.Picture = strDBASEPATH & "IMAGES\Pic4.jpg"
- Forms!FormName!Pic5.Picture = strDBASEPATH & "IMAGES\Pic5.jpg"
- Exit Function
- EH:
- MsgBox "Error displaying images! Please contact your Database Administrator.", vbCritical, "Error!"
- Exit Function
- End Function
I know "why" I am getting this error, because the code thinks that "FormName" is the name of the Form. However, how do I set the code in the module so that the Form name that the VBA code is looking for is the *variable* which is the name of the main form from which the code is executed, eg, the code should be looking for "frmMainForm" and NOT "FormName"?
I've tried as many permutations of brackets, quotes, dots, parentheses etc. I can think of, but nothing seems to work.
Also, if any o' all y'all think I am just chasing my tail on this and there is no need for this code, let me know. I prefer to code things in one area, so that I can call it from aywhere at anytime. Just a preference, but if that is not going to work in this instance, then I am cool with that.
Any suggestions?
Warmest regards!