On May 5, 3:38=A0pm, Jim Armstrong <armstron...@[EMAIL PROTECTED]
> wrote:
> Hello all -
>
> This is driving me crazy. I have a table called tblClients - very
> simple, has the following fields:
>
> taxID (PK)
> ClientName
> SalesName
>
> The main form of my application allows a user to select a client and
> shows sales transactions on a subform. I wanted to include a button
> the user could click which would allow them to edit the client
> information. So, I created a form called frmEditClient which is loaded
> when the button is clicked. Code on the OnClick event for the code
> button:
>
> Private Sub cmdEditClient_Click()
> Dim LinkCriteria As String
> LinkCriteria =3D "[ClientName]=3D '" & Me.txtSelectedCLient & "'"
> DoCmd.OpenForm "frmEditClient", , , LinkCriteria
> End Sub
>
> Pretty simple, just opens the EditClient form using the current client
> in the recordsource - this opens the form and the user can edit
> details and save the form. The recordsource of frmEditClient is a
> query called vwEditClient that selects all from tblClients (tried
> using tblClients as record source - same problem)
>
> Only problem is if the user wants to edit the ClientName field - since
> frmEditClient is using the ClientName field as a filter, I get a
> runtime error 30014 - the data has been added but cannot be displayed
> because it no longer meets the criteria of the underlying
> recordsource.
>
> I know *why* I'm getting the error, I just want to stop it. I've tried
> to trap the damn thing, but can't seem to get it to trap - the error
> is generated on the "me.dirty=3Dfalse" line, and this stops any code
> after from running. I have tried to put On Error Goto 0 at the
> beginning of the sub, etc..., but nothing seems to trigger.
>
> Here is the code for the Save button, without any error handling:
>
> Private Sub cmdSave_Click()
> If Me.Dirty Then
> =A0 =A0 Me.Dirty =3D False
> Else
> =A0 =A0 MsgBox ("No changes were detected - please make your changes, or
> hit Cancel to return to the previous screen")
> =A0 =A0 Exit Sub
> End If
> DoCmd.Close acForm, "frmEditClient"
> End Sub
>
> All I want is:
>
> 1) A way to load the frmEditClient so the form displays the client
> that was selected on the main form
> 2) A way to suppress or hide the runtime error that occurs when the
> user edits the clientname.
>
> Can someone assist with a way to trap this error or prevent it from
> happening?
>
> Thanks
Well, I still have not been able to trap the error, but I was able to
get around it using the resync property. Basically, I added the
following line in the Save button's On Click code:
Me.ResyncCommand =3D "SELECT * FROM vwEditClient WHERE TaxID=3D?"
Seems to work so far - but I'm still all ears if anyone has some
trapping code I could try or a reason the 30014 runtime was not picked
up by my attempts...
Thanks!


|