Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Modules / DAO / VBA / November 2006

Tip: Looking for answers? Try searching our database.

Run VBA code saved as string

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
undrline - 07 Nov 2006 01:58 GMT
I need to convert it back from a string into code.  I'm a newbie - so I'm
really looking for a "how-to."

Function mouseover(buttonname)
Dim buttonname2 As String

buttonname2 = "Me." & buttonname & "a.Visible"
buttonname = "Me." & buttonname & ".Visible"

' BROKEN PART . . . the string is not equal to true or false, it is equal to
the string value
If buttonname = True Then
buttonname = False
buttonname2 = True
End If

End Function
John Spencer - 07 Nov 2006 13:47 GMT
Instead of a string, why not use control references.

Dim ctlButtonA as Control
Dim ctlButton As Control

Set ctlButtonA = Me.Controls(ButtonName & "A")
Set ctlButton = Me.Controls(ButtonName)

If ctlButton = True Then
  ctlButton = False
  ctlButtonA = True
End If

>I need to convert it back from a string into code.  I'm a newbie - so I'm
> really looking for a "how-to."
[quoted text clipped - 14 lines]
>
> End Function
undrline - 07 Nov 2006 19:01 GMT
Thanks for the reply.  I am trying to control the visibility of images
(graphic button images) as a mouseOver.  So, the mousemove event will hide
the visibility of one image, and show the visibility of the other.  All the
images sit on top of another image.  I want this image to have a mousemove
event that toggles them back the way they were (if you move your mouse off of
the button image, you have to move on to the background image, and it reverts)
.  This is my mouseOut.  Because I don't want to create a whole series of
"if" statements for each button, that I then have to modify if I ever add
buttons, I figured I could make a function.  So, I figured I'd tie it to a
naming convention.  mouseover = button1, mouseout = button1a, mouseover =
button2, mouseout = button2a, and so forth.  So, in building the mouseout
function, if I ever have to add more "buttons" I'll only have to worry about
one event.

Since an image isn't a control, will this still work?  Does setting a control
to true/false show/hide it?

>Instead of a string, why not use control references.
>
[quoted text clipped - 14 lines]
>>
>> End Function
Douglas J. Steele - 07 Nov 2006 19:11 GMT
PMFJI, but while an image may not be a control, you have to put it in a
control to display it.

Signature

Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)

> Since an image isn't a control, will this still work?  Does setting a
> control
> to true/false show/hide it?
undrline - 07 Nov 2006 19:26 GMT
"PMFJI?"

>PMFJI, but while an image may not be a control, you have to put it in a
>control to display it.
>
>> Since an image isn't a control, will this still work?  Does setting a
>> control
>> to true/false show/hide it?
John Spencer - 07 Nov 2006 19:58 GMT
PMFJI = Pardon me for jumping in.

So your control has an image?  If so, set the visible property of the
control to true or false

Dim ctlButtonA as Control
Dim ctlButton As Control

Set ctlButtonA = Me.Controls(ButtonName & "A")
Set ctlButton = Me.Controls(ButtonName)

If ctlButton.visible  = True Then
  ctlButton.Visible = False
  ctlButtonA.Visible = True
End If

You should be able to just do the following which may be simpler.

Me.Controls(ButtonName).Visible = False
Me.Controls(ButtonName & "A").Visible = True

> "PMFJI?"
>
[quoted text clipped - 4 lines]
>>> control
>>> to true/false show/hide it?
undrline - 07 Nov 2006 21:28 GMT
Thanks for the definition.  Thank you for the help.  I'm worried about a few
things related to the main variable; I feel like it should be declared
globally somehow.  I have four places the mouse pointer could already be when
the forms opens: on the button, on another button, on the image placemat, or
outside the image placemat.  I can see "order" problems occurring.  Here's
what I'm about to try . . . I have two events and two functions:

FUNCTION - MOUSEOVER

Function mouseover(buttonname)
Dim buttonname As Control

If Me.Controls(buttonname).Visible = True Then
Me.Controls(buttonname).Visible = False
Me.Controls(buttonname & "a").Visible = True
End If

End Function

FUNCTION - MOUSEOUT

Function mouseout(buttonname)

If Me.Controls(buttonname).Visible = False Then
Me.Controls(buttonname).Visible = True
Me.Controls(buttonname & "a").Visible = False
End If

End Function

MOUSEMOVE - OVER button1 IMAGE

Private Sub CreateAudit_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
' CreateAudit is a transparent button on top of the image.
' Native buttons (versus image buttons) were already aligned properly and had
onClick events
' So, I just made them transparent and brought them to the front.

Dim str_buttonname As String

str_buttonname = "button1"
mouseover (str_buttonname)

End Sub

MOUSEMOVE - OVER IMAGE PLACEMAT

Private Sub Image8_MouseMove(Button As Integer, Shift As Integer, X As Single,
Y As Single)

mouseout (buttonname)

End Sub

>PMFJI = Pardon me for jumping in.
>
[quoted text clipped - 22 lines]
>>>> control
>>>> to true/false show/hide it?
undrline - 07 Nov 2006 21:37 GMT
Yes, it doesn't like how I'm passing my variables . . .

>Thanks for the definition.  Thank you for the help.  I'm worried about a few
>things related to the main variable; I feel like it should be declared
[quoted text clipped - 56 lines]
>>>>> control
>>>>> to true/false show/hide it?
undrline - 07 Nov 2006 22:41 GMT
New version below.  Let's me do the mouseover, but not the mouseout.  No
error prompt.  I'm guessing that it's not saving "buttonname" for use in
mouseout(buttonname).  If that is what I'm doing wrong, how do I get it to
remember "buttonname?"  Otherwise, what am I doing wrong?

Thanks for continuing to help.

Private Sub Form_Open(Cancel As Integer)
' FORM OPENS
Dim buttonname As Control
End Sub

Function mouseover(buttonname)
' FUNCTION MOUSEOVER
If Me.Controls(buttonname).Visible = True Then
Me.Controls(buttonname).Visible = False
Me.Controls(buttonname & "a").Visible = True
End If
End Function

Function mouseout(buttonname)
' FUNCTION MOUSEOUT
If Me.Controls(buttonname).Visible = False Then
Me.Controls(buttonname).Visible = True
Me.Controls(buttonname & "a").Visible = False
End If
End Function

Private Sub CreateAudit_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
' MOUSEMOVE BUTTON
buttonname = "button1"
mouseover (buttonname)
End Sub

Private Sub Image8_MouseMove(Button As Integer, Shift As Integer, X As Single,
Y As Single)
' MOUSEMOVE IMAGE PLACEMAT
mouseout (buttonname)
End Sub

>Yes, it doesn't like how I'm passing my variables . . .
>
[quoted text clipped - 3 lines]
>>>>>> control
>>>>>> to true/false show/hide it?
John Spencer - 08 Nov 2006 14:02 GMT
Well, first of all don't dim ButtonName as a control.  You should Dim it as
a string.
Second, dim it at the top of the class module, so it will be available
throughout the module and will retain its value.

Option Explicit
Dim strButtonName as String

Function MouseOver(ButtonName)
'Set strButtonName to the current button name for future use
  strButtonName = ButtonName

  If Me.Controls(buttonname).Visible = True Then
     Me.Controls(buttonname).Visible = False
     Me.Controls(buttonname & "a").Visible = True
  End If

End Function

Function MouseOut()
' FUNCTION MOUSEOUT
  If Me.Controls(strButtonName).Visible = False Then
     Me.Controls(strbuttonname).Visible = True
     Me.Controls(strbuttonname & "a").Visible = False
  End If
End Function

> New version below.  Let's me do the mouseover, but not the mouseout.  No
> error prompt.  I'm guessing that it's not saving "buttonname" for use in
[quoted text clipped - 47 lines]
>>>>>>> control
>>>>>>> to true/false show/hide it?
undrline - 08 Nov 2006 19:36 GMT
I adapted your version, and it worked.  Thank you!

Here was the final, with the adaptations:

Option Compare Database
Dim strButtonName As String
' GLOBAL DECLARATIONS (previously, I had tried this, As Control, and it
didn't work; Explicit is not necessary)

Private Sub Form_Open(Cancel As Integer)
' OPEN FORM (give it something to chew on, until strButtonName has an actual
value)
strButtonName = ""
End Sub

Private Sub Image8_MouseMove(Button As Integer, Shift As Integer, X As Single,
Y As Single)
' IMAGE PLACEMAT
If strButtonName <> "" Then
mouseOut (strButtonName)
End If
End Sub

Private Sub CreateAudit_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
' BUTTON
strButtonName = "button1"
mouseOver (strButtonName)
End Sub

Private Sub OpenCreateFile_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
' ANOTHER BUTTON
strButtonName = "button2"
mouseOver (strButtonName)
End Sub

Function mouseOver(strButtonName)
' MOUSEOVER
If Me.Controls(strButtonName).Visible = True Then
Me.Controls(strButtonName).Visible = False
Me.Controls(strButtonName & "a").Visible = True
End If
End Function

Function mouseOut(strButtonName)
' MOUSEOUT
If Me.Controls(strButtonName).Visible = False Then
Me.Controls(strButtonName).Visible = True
Me.Controls(strButtonName & "a").Visible = False
End If
End Function

>Well, first of all don't dim ButtonName as a control.  You should Dim it as
>a string.
[quoted text clipped - 28 lines]
>>>>>>>> control
>>>>>>>> to true/false show/hide it?
John Spencer - 08 Nov 2006 21:08 GMT
Option Explicit is not necessary, BUT it is a very good idea to use it.

It keeps you from trying to use the wrong type of data in arguments and it
also allows you to find typing errors.  I always use it and it catches a lot
of my typos when I enter things like stButtonName instead of strButtonName.

>I adapted your version, and it worked.  Thank you!
>
[quoted text clipped - 86 lines]
>>>>>>>>> control
>>>>>>>>> to true/false show/hide it?
undrline - 08 Nov 2006 21:22 GMT
I did have to look it up to find out what it does, and it does sound like a
good idea, you've helped to widen my scope.

Thank you, and everyone, for all your help.

>Option Explicit is not necessary, BUT it is a very good idea to use it.
>
[quoted text clipped - 7 lines]
>>>>>>>>>> control
>>>>>>>>>> to true/false show/hide it?
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.