Mark A Matte
markamatte at hotmail.com
Thu Nov 20 09:41:41 CST 2008
I tried sending this yesterday...but the message was too long...lets try again!!!
...and again...I'll leave my other posts at the bottom in case they are relecant. I'll send in 2 parts
**********
Paul,
I don't have the code available for the "do stuff when you click"...easy enough by calling the same function from every object(event of your choice)...that parses the object name...and displays what you need.
Here is the code that fires when my form opens...it paints the form and organizes all the objects on the form. Below that is the code from the other form I use to move the objects around. Keep in mind...the moving/organizing of the objects is all table driven(left,top,height, width all stored in a single record for each object). It's barely clear to me...so let me know if you have questions.
Thanks,
MarkA. Matte
Function PaintForm()
Dim strSQL As String
Dim strControlName As String
Dim cntl As Control
Dim ret
Dim MyRst As Recordset
Set db = CurrentDb()
Set MyRst = db.OpenRecordset("tblDesign", DB_OPEN_DYNASET)
strSQL = "[Active]> -2"
MyRst.FindFirst strSQL
Do Until MyRst.NoMatch
strControlName = MyRst!ControlNumber
Set cntl = Forms!frmtables(strControlName)
cntl.Top = MyRst![Top]
cntl.Left = MyRst![Left]
cntl.Visible = False
If MyRst!Active = False Then GoTo Skip
Select Case Left(MyRst!ControlNumber, 6)
Case "pool_p"
cntl.Visible = True
If MyRst!Type = "V" Then
cntl.Width = 586
cntl.Height = 1020
cntl.Picture = "C:\Documents and Settings\Mark\Desktop\Pool\PTable2.gif"
Else
cntl.Width = 1035
cntl.Height = 600
cntl.Picture = "C:\Documents and Settings\Mark\Desktop\Pool\PTable3.gif"
End If
Case "labelp"
cntl.Visible = True
If MyRst!Type = "V" Then
cntl.Width = 540
cntl.Height = 1020
cntl.TopMargin = 216
Else
cntl.Width = 1020
cntl.Height = 600
cntl.TopMargin = 0
End If
Case "countp"
cntl.Visible = True
If MyRst!Type = "V" Then
cntl.Width = 420
cntl.Height = 600
cntl.TopMargin = 43
Else
cntl.Width = 420
cntl.Height = 600
cntl.TopMargin = 144
End If
Case "bar__b"
cntl.Visible = True
cntl.Height = MyRst![Height]
cntl.Width = MyRst![Width]
Case "dine_d"
cntl.Visible = True
Case "labeld"
cntl.Visible = True
Case "stools"
cntl.Visible = True
Case "labels"
cntl.Visible = True
End Select
Skip:
Set cntl = Forms!frmtables(strControlName)
MyRst.FindNext strSQL
Loop
End Function
> I left 1 piece of info out...I wanted the same type of events to fire for
> each object type...so I wrote some code that used the name of each object to
> determine what function to call...and used a naming convention religiously.
> When a certain object was clicked...the border(a label) would change
> color...and a lookup would count and display on on the object how many
> records were associated with the table. So for each object I had 3
> things.Example:
>
> Text box---tbPool01
> Label---lbPool01
> Image---imPool01
>
> Text box---tbBoot01
> Label---lbBoot01
> Image---imBoot01
>
> So when you clicked on an object(image) it would pass its name to the
> function...parse the name...then depending on what 'kind' it was
> ('boot','pool','stoo'' etc)...Mid([MyName],3,4)...would do specific things
> to that images corresponding text box and lable.
>
> Using this type of naming...allowed me to store the names and positions of
> all objects in a table, loop through all items when the form opened and
> positioning them according to the data in the table....giving the user a way
> to move items around(UP,DOWN,RIGHT,LEFT buttons adding and subtracting
> TWIPS) on the screen and basically customizing it for their use.(even worked
> in an MDE).
>
> Good Luck,
>
> Mark A. Matte
_________________________________________________________________
Get more done, have more fun, and stay more connected with Windows Mobile®.
http://clk.atdmt.com/MRT/go/119642556/direct/01/