PC Review


Reply
Thread Tools Rate Thread

Configuring the ACCESS Zoom Box

 
 
SJ
Guest
Posts: n/a
 
      1st Mar 2006
Hi there,
when you press <SHIFT F2> the Zoom box appears with the text in the current
field.

Problem(s) for users is this,

1. The text is always highlighted, meaning a single keystroke can over
write all the data...

2. To create a new line in the Zoom Box, the user needs to press <CTRL
ENTER> instead of just ENTER...

I know it's a matter of training but that doesn't seem an option here. you
know how it is...

Does anyone know how to configure the Zoom Box to leave the cursor at the
end of the field, with the text NOT highlighted and to make it so that a new
line in the Zoom Box is created by ENTER only???

thx


 
Reply With Quote
 
 
 
 
Allen Browne
Guest
Posts: n/a
 
      2nd Mar 2006
I don't know any way to configure the zoom box, but it is not hard to
replace it with one you can configure.

This is untested and incomplete, but the basic idea:

1. Create a unbound form (no table), with a single large text box.

2. Create an AutoExec macro, and put this in the MacroNames column:
+{F2}
In the Action colunmn, enter your function name, such as:
=FireZoomBox()
Save the macro with the name AutoKeys. (The name is important.)

3. In a standard module, write the function to copy the text from the active
control to the big unbound text box, and keep track of the name of the
previous control:

Public gctlZoomTarget As Control
Function FireZoomBox()
gctlTarget = Screen.ActiveControl
DoCmd.OpenForm "frmZoom", WindowMode:=acDialog, _
OpenArgs:= gctlZoomTarget.Value
End Function

4. In the Load event of the zoombox, copy the value from OpenArgs to the big
text box.

5. In the Click event of your Ok command button on your zoom form:
If Not gctlZoomTarget Is Nothing Then
gctlZoomTarget.Value = Me.[MyBigTextbox]
End If

That will certainly need refining and error handling, because the
ActiveControl might be a a command button or something which has no Value.

You can then control it anyway you want, e.g. using SelStart and SelLength
to define what is initially selected, and setting the EnterKeyBehavior of
the ext box.

--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

"SJ" <(E-Mail Removed)> wrote in message
news:du564v$pnq$(E-Mail Removed)...
> Hi there,
> when you press <SHIFT F2> the Zoom box appears with the text in the
> current field.
>
> Problem(s) for users is this,
>
> 1. The text is always highlighted, meaning a single keystroke can over
> write all the data...
>
> 2. To create a new line in the Zoom Box, the user needs to press <CTRL
> ENTER> instead of just ENTER...
>
> I know it's a matter of training but that doesn't seem an option here.
> you know how it is...
>
> Does anyone know how to configure the Zoom Box to leave the cursor at the
> end of the field, with the text NOT highlighted and to make it so that a
> new line in the Zoom Box is created by ENTER only???
>
> thx



 
Reply With Quote
 
SJ
Guest
Posts: n/a
 
      5th Mar 2006
Hi Allan,
I couldn't quite understand points 2 and 3...

I allready have an AutoExec macro...

I couldn't find the "MacroNames" column.

The Action column ONLY lets me select from a set list...

I was wondering if you forgot to mention a step, therefore making me quite
lost...

sorry for the inconvenience...

oh yes, one other point, the ACCESS Zoom Box knows if a control is read
only, as I can't get this working, will it know, if I can get it working
then I can test that....


"Allen Browne" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>I don't know any way to configure the zoom box, but it is not hard to
>replace it with one you can configure.
>
> This is untested and incomplete, but the basic idea:
>
> 1. Create a unbound form (no table), with a single large text box.
>
> 2. Create an AutoExec macro, and put this in the MacroNames column:
> +{F2}
> In the Action colunmn, enter your function name, such as:
> =FireZoomBox()
> Save the macro with the name AutoKeys. (The name is important.)
>
> 3. In a standard module, write the function to copy the text from the
> active control to the big unbound text box, and keep track of the name of
> the previous control:
>
> Public gctlZoomTarget As Control
> Function FireZoomBox()
> gctlTarget = Screen.ActiveControl
> DoCmd.OpenForm "frmZoom", WindowMode:=acDialog, _
> OpenArgs:= gctlZoomTarget.Value
> End Function
>
> 4. In the Load event of the zoombox, copy the value from OpenArgs to the
> big text box.
>
> 5. In the Click event of your Ok command button on your zoom form:
> If Not gctlZoomTarget Is Nothing Then
> gctlZoomTarget.Value = Me.[MyBigTextbox]
> End If
>
> That will certainly need refining and error handling, because the
> ActiveControl might be a a command button or something which has no Value.
>
> You can then control it anyway you want, e.g. using SelStart and SelLength
> to define what is initially selected, and setting the EnterKeyBehavior of
> the ext box.
>
> --
> Allen Browne - Microsoft MVP. Perth, Western Australia.
> Tips for Access users - http://allenbrowne.com/tips.html
> Reply to group, rather than allenbrowne at mvps dot org.
>
> "SJ" <(E-Mail Removed)> wrote in message
> news:du564v$pnq$(E-Mail Removed)...
>> Hi there,
>> when you press <SHIFT F2> the Zoom box appears with the text in the
>> current field.
>>
>> Problem(s) for users is this,
>>
>> 1. The text is always highlighted, meaning a single keystroke can over
>> write all the data...
>>
>> 2. To create a new line in the Zoom Box, the user needs to press <CTRL
>> ENTER> instead of just ENTER...
>>
>> I know it's a matter of training but that doesn't seem an option here.
>> you know how it is...
>>
>> Does anyone know how to configure the Zoom Box to leave the cursor at the
>> end of the field, with the text NOT highlighted and to make it so that a
>> new line in the Zoom Box is created by ENTER only???
>>
>> thx

>
>



 
Reply With Quote
 
Douglas J. Steele
Guest
Posts: n/a
 
      5th Mar 2006
To get the MacroNames column added, check it on the View menu.

In step 2, select RunCode as the action, and put FireZoomBox() as the
function name.

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


"SJ" <(E-Mail Removed)> wrote in message
news:dufquq$6p5$(E-Mail Removed)...
> Hi Allan,
> I couldn't quite understand points 2 and 3...
>
> I allready have an AutoExec macro...
>
> I couldn't find the "MacroNames" column.
>
> The Action column ONLY lets me select from a set list...
>
> I was wondering if you forgot to mention a step, therefore making me
> quite lost...
>
> sorry for the inconvenience...
>
> oh yes, one other point, the ACCESS Zoom Box knows if a control is read
> only, as I can't get this working, will it know, if I can get it
> working then I can test that....
>
>
> "Allen Browne" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>>I don't know any way to configure the zoom box, but it is not hard to
>>replace it with one you can configure.
>>
>> This is untested and incomplete, but the basic idea:
>>
>> 1. Create a unbound form (no table), with a single large text box.
>>
>> 2. Create an AutoExec macro, and put this in the MacroNames column:
>> +{F2}
>> In the Action colunmn, enter your function name, such as:
>> =FireZoomBox()
>> Save the macro with the name AutoKeys. (The name is important.)
>>
>> 3. In a standard module, write the function to copy the text from the
>> active control to the big unbound text box, and keep track of the name of
>> the previous control:
>>
>> Public gctlZoomTarget As Control
>> Function FireZoomBox()
>> gctlTarget = Screen.ActiveControl
>> DoCmd.OpenForm "frmZoom", WindowMode:=acDialog, _
>> OpenArgs:= gctlZoomTarget.Value
>> End Function
>>
>> 4. In the Load event of the zoombox, copy the value from OpenArgs to the
>> big text box.
>>
>> 5. In the Click event of your Ok command button on your zoom form:
>> If Not gctlZoomTarget Is Nothing Then
>> gctlZoomTarget.Value = Me.[MyBigTextbox]
>> End If
>>
>> That will certainly need refining and error handling, because the
>> ActiveControl might be a a command button or something which has no
>> Value.
>>
>> You can then control it anyway you want, e.g. using SelStart and
>> SelLength to define what is initially selected, and setting the
>> EnterKeyBehavior of the ext box.
>>
>> --
>> Allen Browne - Microsoft MVP. Perth, Western Australia.
>> Tips for Access users - http://allenbrowne.com/tips.html
>> Reply to group, rather than allenbrowne at mvps dot org.
>>
>> "SJ" <(E-Mail Removed)> wrote in message
>> news:du564v$pnq$(E-Mail Removed)...
>>> Hi there,
>>> when you press <SHIFT F2> the Zoom box appears with the text in the
>>> current field.
>>>
>>> Problem(s) for users is this,
>>>
>>> 1. The text is always highlighted, meaning a single keystroke can
>>> over write all the data...
>>>
>>> 2. To create a new line in the Zoom Box, the user needs to press
>>> <CTRL ENTER> instead of just ENTER...
>>>
>>> I know it's a matter of training but that doesn't seem an option here.
>>> you know how it is...
>>>
>>> Does anyone know how to configure the Zoom Box to leave the cursor at
>>> the end of the field, with the text NOT highlighted and to make it so
>>> that a new line in the Zoom Box is created by ENTER only???
>>>
>>> thx

>>
>>

>
>



 
Reply With Quote
 
Allen Browne
Guest
Posts: n/a
 
      6th Mar 2006
Thanks, Doug.
Macro Name is on the View menu
RunCode is the Action
=FireZoomBox() is the argument (lower pane of macro window.)

Your subsequent question is how to determine if the control is updatable.
The function below is untested, but should give you the idea.

The logic runs like this:
- If the control is locked or disabled, it is NOT updatable (from user
perspective.)
- If the control is unbound it IS updatable.
- If the control is bound to an expression it is NOT updatable.
- If none of those apply, its ControlSource must be a field, so we determine
its updatability from the DataUpdatable property of the field in the
RecordsetClone of the form.
- If the control is bound, but the form is not, this is an error situation,
so it is NOT updatable.
- If the control has no ControlSource (such as a label), it is NOT
updatable.
- For any other error, we return False (play safe.)

Examples of use
============
To test Text0 on Form1:
1. In code:
If IsControlUpdatable(Me, Me.Text0) Then ...

2. In the Condition column in a macro:
IsControlUpdatable([Forms]![Form1], [Forms]![Form1].[Text0])

----------------code begins----------------------
Function IsControlUpdatable(frm As Form, ctl As Control) As Boolean
On Error GoTo Err_Handler
'Purpose: Determine whether the control is updatable.
'Return: True if updatable, else False.
'Arguments: frm = the form the control is on.
' ctl = the control to examine.
Dim strControlSource As String
Dim bUpdatable As Boolean

'If Disabled or locked, not updatable.
If (ctl.Enabled) And Not (ctl.Locked) Then
strControlSource = Trim$(ctl.ControlSource)
If strControlSource = vbNullString Then
'Unbound: updatable.
bUpdatable = True
ElseIf strControlSource Like "=*" Then
'Bound to expression: not updatable.
ElseIf frm.RecordSource <> vbNullString Then
'Bound to field: read updatability from clone set.
bUpdatable =
frm.RecordsetClone.Fields(strControlSource).DataUpdatable
'Other case: form is unbound and control is bound: return false.
End If
End If

IsControlUpdatable = bUpdatable

Exit_Handler:
Exit Function

Err_Handler:
Select Case Err.Number
Case 438 'Object doesn't have a ControlSource.
Case Else
MsgBox "Error " & Err.Number & ": " & Err.Description, ,
"IsControlUpdatable()"
End Select
Resume Exit_Handler
End Function
----------------code ends----------------------

Hope that proves useful.

--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

"Douglas J. Steele" <NOSPAM_djsteele@NOSPAM_canada.com> wrote in message
news:(E-Mail Removed)...
> To get the MacroNames column added, check it on the View menu.
>
> In step 2, select RunCode as the action, and put FireZoomBox() as the
> function name.
>
> --
> Doug Steele, Microsoft Access MVP
> http://I.Am/DougSteele
> (no private e-mails, please)
>
>
> "SJ" <(E-Mail Removed)> wrote in message
> news:dufquq$6p5$(E-Mail Removed)...
>> Hi Allan,
>> I couldn't quite understand points 2 and 3...
>>
>> I allready have an AutoExec macro...
>>
>> I couldn't find the "MacroNames" column.
>>
>> The Action column ONLY lets me select from a set list...
>>
>> I was wondering if you forgot to mention a step, therefore making me
>> quite lost...
>>
>> sorry for the inconvenience...
>>
>> oh yes, one other point, the ACCESS Zoom Box knows if a control is read
>> only, as I can't get this working, will it know, if I can get it
>> working then I can test that....
>>
>>
>> "Allen Browne" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>>>I don't know any way to configure the zoom box, but it is not hard to
>>>replace it with one you can configure.
>>>
>>> This is untested and incomplete, but the basic idea:
>>>
>>> 1. Create a unbound form (no table), with a single large text box.
>>>
>>> 2. Create an AutoExec macro, and put this in the MacroNames column:
>>> +{F2}
>>> In the Action colunmn, enter your function name, such as:
>>> =FireZoomBox()
>>> Save the macro with the name AutoKeys. (The name is important.)
>>>
>>> 3. In a standard module, write the function to copy the text from the
>>> active control to the big unbound text box, and keep track of the name
>>> of the previous control:
>>>
>>> Public gctlZoomTarget As Control
>>> Function FireZoomBox()
>>> gctlTarget = Screen.ActiveControl
>>> DoCmd.OpenForm "frmZoom", WindowMode:=acDialog, _
>>> OpenArgs:= gctlZoomTarget.Value
>>> End Function
>>>
>>> 4. In the Load event of the zoombox, copy the value from OpenArgs to the
>>> big text box.
>>>
>>> 5. In the Click event of your Ok command button on your zoom form:
>>> If Not gctlZoomTarget Is Nothing Then
>>> gctlZoomTarget.Value = Me.[MyBigTextbox]
>>> End If
>>>
>>> That will certainly need refining and error handling, because the
>>> ActiveControl might be a a command button or something which has no
>>> Value.
>>>
>>> You can then control it anyway you want, e.g. using SelStart and
>>> SelLength to define what is initially selected, and setting the
>>> EnterKeyBehavior of the ext box.
>>>
>>> "SJ" <(E-Mail Removed)> wrote in message
>>> news:du564v$pnq$(E-Mail Removed)...
>>>> Hi there,
>>>> when you press <SHIFT F2> the Zoom box appears with the text in the
>>>> current field.
>>>>
>>>> Problem(s) for users is this,
>>>>
>>>> 1. The text is always highlighted, meaning a single keystroke can
>>>> over write all the data...
>>>>
>>>> 2. To create a new line in the Zoom Box, the user needs to press
>>>> <CTRL ENTER> instead of just ENTER...
>>>>
>>>> I know it's a matter of training but that doesn't seem an option here.
>>>> you know how it is...
>>>>
>>>> Does anyone know how to configure the Zoom Box to leave the cursor at
>>>> the end of the field, with the text NOT highlighted and to make it so
>>>> that a new line in the Zoom Box is created by ENTER only???



 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Please help! Print Preview Zoom is Grayed Out...Doesn't zoom. PK Microsoft Excel Misc 0 20th Jul 2009 03:33 PM
Ctrl+Mouse Wheel = Zoom In or Zoom Out? StevenM Microsoft Word New Users 1 11th Jul 2008 05:52 PM
Zoom View in Access =?Utf-8?B?S2ltYnlARWNvbG9neQ==?= Microsoft Access 3 23rd Jun 2006 12:25 AM
Configuring Access for multiple user access across a workgroup net =?Utf-8?B?dmFuR29naA==?= Microsoft Access 3 26th Jan 2005 10:54 PM
Access Zoom() =?Utf-8?B?THlubmE=?= Microsoft Access Database Table Design 1 12th Nov 2004 09:52 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 06:47 AM.