[AccessD] A2003: Table Driven button list on Continuous Forms

Darren D darren at activebilling.com.au
Wed Sep 10 19:03:47 CDT 2008


Hi Mark

Genius - Love it - It does exactly what I wanted - I only went with Cont Forms
as I thought this would be the best way to achieve buttons on the fly

This has opened a whole new world for this project and I can go back to single
record forms as my subform - Way Cool

This may also sort out an issue I have with a set number of TABS on the form not
being enough and having to add more in design view then redistribute the app,
versus 'creating' the required number on the fly - oooooh I am excited

Many many thanks
 
Darren
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark A Matte
Sent: Wednesday, 10 September 2008 11:58 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] A2003: Table Driven button list on Continuous Forms


Sorry...this is not on a continuos form...but I think the concept is here in
spirit.  If you have 5 records...you get 5 buttons...3 records...3 buttons.

Mark


> From: markamatte at hotmail.com
> To: accessd at databaseadvisors.com
> Date: Wed, 10 Sep 2008 12:51:46 +0000
> Subject: Re: [AccessD] A2003: Table Driven button list on Continuous Forms
>
>
> Darren,
>
> I done something similar...but not with buttons. So I modified to see if I
could get what you need. I used a form,subform, and table. I got the idea from a
sample Candace Tripp had on her site years ago. There is no error
handling...just code.
>
> Let me know if you have any questions or need a sample mdb.
>
> Thanks,
>
> Mark A. Matte
>
> Here is the code for each form:
> SubForm: sfrmMyButtons
>
> Option Compare Database
>
> Function ImClicked()
> Dim CNM
> Dim ctlCurrentControl As Control
>
> Set ctlCurrentControl = Screen.ActiveControl
> CNM = Right(ctlCurrentControl.Name, Len(ctlCurrentControl.Name) - 4)
>
> If Me("tgl_" & CNM) = 0 Or IsNull(Me("tgl_" & CNM)) = True Then
> Me("tgl_" & CNM) = -1
> Me("lb1_" & CNM).Visible = False
> Me("lb2_" & CNM).Visible = True
> Else
> Me("tgl_" & CNM) = 0
> Me("lb1_" & CNM).Visible = True
> Me("lb2_" & CNM).Visible = False
> End If
> End Function
>
>
> Main Form: frmMakeButton
>
>
> Function MakeButtons()
> Dim dbs As Database, rst As Recordset, intI As Integer
> Dim ctlLabel As Control, ctlText As Control, ctlToggle As Control, ctlButton
As Control
> Dim intDataX As Integer, intDataY As Integer
> Dim intLabelX As Integer, intLabelY As Integer
> DoCmd.OpenForm "sfrmMyButtons", acDesign
>
> Dim ctl As Control
> LoopAgain:
> For Each ctl In Forms!sfrmMyButtons.Controls
> Dim test
> DeleteControl "sfrmMyButtons", ctl.Name
> Next ctl
> If Forms!sfrmMyButtons.Controls.Count> 0 Then GoTo LoopAgain
> Set dbs = CurrentDb
> Set rst = dbs.OpenRecordset("SELECT Table2.emails FROM Table2 WHERE
Table2.Group= '" & [Forms]![frmMakeButton]![Combo3] & "';")
>
> rst.MoveLast
> rst.MoveFirst
>
> intLabelX = 100
> intLabelY = 100
> intDataX = 1000
> intDataY = 100
>
> For intI = 1 To rst.RecordCount
> '********************************
> Set ctlToggle = CreateControl("sfrmMyButtons", acToggleButton, , "", "",
intLabelX, intLabelY, 2000, 500)
> ctlToggle.Name = "tgl_" & rst!emails
> ctlToggle.TabStop = 0
> ctlToggle.Enabled = False
> Set ctlLabel = CreateControl("sfrmMyButtons", acLabel, , "",
"66666666662222222000000", intLabelX, intLabelY, 2000, 500)
> ctlLabel.Name = "lb1_" & rst!emails
> ctlLabel.Caption = rst!emails
> ctlLabel.TextAlign = 2
> Set ctlLabel = CreateControl("sfrmMyButtons", acLabel, , "",
"66666666662222222000000", intLabelX, intLabelY + 100, 2000, 500)
> ctlLabel.Name = "lb2_" & rst!emails
> ctlLabel.Caption = rst!emails
> ctlLabel.TextAlign = 2
> ctlLabel.Visible = False
> Set ctlButton = CreateControl("sfrmMyButtons", acCommandButton, , "",
"66666666662222222000000", intLabelX, intLabelY, 2000, 500)
> ctlButton.Visible = True
> ctlButton.Name = "cmd_" & rst!emails
> ctlButton.Transparent = True
> ctlButton.OnMouseDown = "=imClicked()"
> ctlButton.OnMouseUp = "=imClicked()"
> intLabelY = intLabelY + 500
>
> '********************************
> rst.MoveNext
>
> Next intI
> Set dbs = Nothing
> Set rst = Nothing
> DoCmd.Close acForm, "sfrmMyButtons", acSaveYes
> End Function
>
> Private Sub Combo3_AfterUpdate()
> Me!sfrmMyButtons.SourceObject = ""
> MakeButtons
> Me!sfrmMyButtons.SourceObject = "sfrmMyButtons"
> End Sub
>
>> From: darren at activebilling.com.au
>> To: accessd at databaseadvisors.com
>> Date: Tue, 9 Sep 2008 09:52:18 +1000
>> Subject: Re: [AccessD] A2003: Table Driven button list on Continuous Forms
>>
>> Hi Kath
>>
>> Thanks for the reply
>> I just wanted to build a list of buttons (that grows and shrinks)on a
continuous
>> form for each of our clients. Clients are selected by tabs and the list of
>> buttons is 'built' on each tab click (In a sub form). The table is a list of
>> applications each client has and I want a button list of their applications
and
>> I wanted the caption on the button and the list of buttons to be table
driven.
>>
>> That ain't gonna work. So I used a transparent text box over the no caption
>> button that looked OK until you click it. Then the mouse simply moves to the
>> text box and the text of 'the button' is selected. Then I wanted the 'look'
of a
>> button being pushed and look of a button being released when the mouse got to
>> this transparent text box. Too tricky
>>
>> I gave up - can't easily be done and I have already used an inappropriate
amount
>> of time chasing the 'look'
>>
>> Darren
>>
>> -----Original Message-----
>> From: accessd-bounces at databaseadvisors.com
>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kath Pelletti
>> Sent: Tuesday, 9 September 2008 9:10 AM
>> To: Access Developers discussion and problem solving
>> Subject: Re: [AccessD] A2003: Table Driven button list on Continuous Forms
>>
>> Darrren -
>>
>> I'm not sure that I *entirely* understand what you are trying to do, but if
>> you want bound controls which look like rounded buttons, then can draw a
>> rounded button (in Word or PPoint), and then sit the bound control on top of
>> it (text box) and set it's back style to transparent.
>>
>> Why do you need a mouse down/up event?
>>
>> kath
>>
>> ----- Original Message -----
>> From: "Darren D"
>> To: "'Access Developers discussion and problem solving'"
>>
>> Sent: Monday, September 08, 2008 10:24 PM
>> Subject: [AccessD] A2003: Table Driven button list on Continuous Forms
>>
>>
>>> Hi All
>>>
>>>
>>>
>>> I have a table of application names that will grow and shrink with many
>>> fields
>>> but the 2 of interest are.
>>>
>>> APPID = AutoNumber and AppName = Text
>>>
>>>
>>>
>>> I want a continuous form to have a button for each item in that table.
>>>
>>> Trouble is It is a bit tricky to get the caption for each button to = the
>>> AppName for each record in the table
>>>
>>> I can 'fake' it using labels but if I write a routine to simulate a mouse
>>> down
>>> and mouse up to mimic raises and depressions then
>>>
>>> all the labels that are simulated buttons on the form depress and raise at
>>> the
>>> same time
>>>
>>> Besides I would prefer to have the 'rounded' look to the buttons simply to
>>> match
>>> the rest of my screen design
>>>
>>>
>>>
>>> I know many people have done this sort of thing before - But how have you
>>> managed it on a continuous form driven by a table
>>>
>>>
>>>
>>> Many thanks in advance
>>>
>>>
>>>
>>> Darren
>>>
>>>
>>>
>>> --
>>> AccessD mailing list
>>> AccessD at databaseadvisors.com
>>> http://databaseadvisors.com/mailman/listinfo/accessd
>>> Website: http://www.databaseadvisors.com
>>>
>>
>>
>> --
>> AccessD mailing list
>> AccessD at databaseadvisors.com
>> http://databaseadvisors.com/mailman/listinfo/accessd
>> Website: http://www.databaseadvisors.com
>>
>> --
>> AccessD mailing list
>> AccessD at databaseadvisors.com
>> http://databaseadvisors.com/mailman/listinfo/accessd
>> Website: http://www.databaseadvisors.com
>
> _________________________________________________________________
> See how Windows connects the people, information, and fun that are part of
your life.
> http://clk.atdmt.com/MRT/go/msnnkwxp1020093175mrt/direct/01/
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

_________________________________________________________________
Stay up to date on your PC, the Web, and your mobile phone with Windows Live.
http://clk.atdmt.com/MRT/go/msnnkwxp1020093185mrt/direct/01/
-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list