Senin, 05 November 2012

Re: [MS_AccessPros] Open on Blank Record

 

Hi Bill,

> "Despite ongoing training the users periodically by pass the Lookup Combo box and go to the last name field of the form and type in the name they are searching for. "

on the BeforeUpdate event of this control, do this:

if msgbox("You are attempting to change the name on this record from " & me.activecontrol.oldvalue _
      & " to " & me.activecotrol.value _
      & vbcrlf & vbcrlf & "Do you want to FIND this record instead?" _
      , vbyesno, "FIND record instead of change?") = vbyes then
   Me.Undo
   Cancel = true
   ' hook in to your FIND code
end if

you can also require a password to change the name ... I have a popup password picker but not sure if it is posted

When I use combos for purposes of showing data, I cover the drop-down arrow with a rectangle that is the same color as the section background. 

~~~

I rarely set the form Edit property to No.  Here is some code you can put into a standard module to loop through all controls in the detail section and lock or unlock them depending on whether you pass True or False.

Lock controls:

on the property sheet of a control on the form:
=LockUnlockDetailControlsTag( [form],true,"Data",[cboFind])

in code:
LockUnlockDetailControlsTag Me,true,"Data",Me.cboFind

to unlock controls, send False

then put this in the TAG property of each control to flip:

~Data~

I use tilede's around terms and do an instr match so that other tags can be there too. 

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
Function LockUnlockDetailControlsTag( _
   pForm As form_
   , pBoo As Boolean _
   , pTag As String _
   , pControlFocus As control _
   ) as byte
 'Crystal 1/7/2008

   Dim ctl As Control  
 
   'if we are locking controls then move focus
   if pBoo then pControlFocus.SetFocus
  
   On Error goto Proc_Err
 
   'this is limited to controls in the detail section
   For Each ctl In pForm.Detail.Controls
 
      If InStr(ctl.Tag, pTag) > 0 Then
 
         ctl.Locked = pBoo
         ctl.Enabled = not pBoo
 
      End If
 
   Next ctl
 
Proc_Exit:
 
   If Not ctl Is Nothing Then Set ctl = Nothing
   Exit Function
 
Proc_Err:
   MsgBox Err.Description, , _
        "ERROR " & Err.Number _
        & "   LockUnlockDetailControlsTag"
 
   Resume Proc_Exit

   'if you want to single-step code to find error, CTRL-Break at MsgBox
   'then set this to be the next statement
   Stop:    Resume
 
End Function

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

and if you want it to act on controls in a subform, pass this:

in property
[form].[subform_controlname].form, "Data",True,[form].[subform_controlname].form.cboFind

in code:
Me.subform_controlname.form, "Data",True,Me.subform_controlname.form.cboFind

substitute the name of a 'safe' control on your form for cboFind

Warm Regards,
Crystal

Microsoft MVP, Access
remote training and programming

free book, tips, and tools:
http://www.AccessMVP.com/strive4peace

free video tutorials:
http://www.YouTube.com/LearnAccessByCrystal
http://www.YouTube.com/LearnByCrystal

free downloads:
http://www.rogersaccesslibrary.com/forum/long-crystal_forum71.htm

 *
   (: have an awesome day :)
 *

________________________________
From: Duane Hookom <duanehookom@hotmail.com>
To: Access Professionals Yahoo Group <ms_access_professionals@yahoogroups.com>
Sent: Sunday, November 4, 2012 10:03 PM
Subject: RE: [MS_AccessPros] Open on Blank Record

You decide what you think is appropriate. I would selectively lock and/or disable controls if the users can't leave the values alone.

Duane Hookom MVP
MS Access

> To: MS_Access_Professionals@yahoogroups.com
> From: Bill.Singer@at-group.net
> Date: Mon, 5 Nov 2012 04:03:36 +0000
> Subject: Re:  [MS_AccessPros] Open on Blank Record
>
>
> Duane,
> So in the "ON OPEN" event I could set the edit property to NO.
>
> I did not see a LOCKED property.
>
> When the EDIT property is set to NO my combo box does not work either.
>
> Or.. should I set the LOCKED property of the last name field to YES on OPEN and then unlock it at the exit of the combo box?
>
> I am thinking out loud but am I on the right track?
>
> Thanks,
> Bill
>
>
>
> -----Original Message-----
> From: Duane Hookom [mailto:duanehookom@hotmail.com]
> Sent: Sunday, November 4, 2012 09:10 PM
> To: 'Access Professionals Yahoo Group'
> Subject: RE: [MS_AccessPros] Open on Blank Record
>
> You can default the form to locked and then unlock the controls based on some event.
>
> Duane Hookom MVP
> MS Access
>
> > To: mailto:MS_Access_Professionals%40yahoogroups.com
> > From: mailto:Bill.Singer%40at-group.net
> > Date: Mon, 5 Nov 2012 01:52:47 +0000
> > Subject: [MS_AccessPros] Open on Blank Record
> >
> > I have a client Lookup up combo box on a form which contains the client information including last name and first name.
> >
> > Despite ongoing training the users periodically by pass the Lookup Combo box and go to the last name field of the form and type in the name they are searching for. This changes the data on the first record that shows up on the form when the form is open.
> >
> > Is it possible to open a form to a blank record without it being a New record?
> >
> > Any other ideas on how to prevent the first record from this user error?
> >
> > Thank you,
> > Bill
> > MN
> >
> >
> >
> > ------------------------------------
> >
> > Yahoo! Groups Links
> >
> >
> >
>
>
> [Non-text portions of this message have been removed]
>
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
                       

[Non-text portions of this message have been removed]

------------------------------------

Yahoo! Groups Links

[Non-text portions of this message have been removed]

__._,_.___
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (5)
Recent Activity:
.

__,_._,___

Tidak ada komentar:

Posting Komentar