Charlotte Foust
charlotte.foust at gmail.com
Sat Oct 15 17:51:20 CDT 2011
So after the find, the values in the found record are displayed in the form? If not, it t sounds like you might have AllowAdditions set to Yes, in which case, you are trying to create a duplicate record even if you don't intend to. DataEntry is only in effect if AllowAdditions is turned on IIRRC. Charlotte Foust On Sat, Oct 15, 2011 at 1:43 PM, Bob Gajewski <rbgajewski at roadrunner.com>wrote: > DataEntry = No > AllowEdits = Yes > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust > Sent: Saturday, October 15, 2011 12:57 PM > To: Access Developers discussion and problem solving > Subject: Re: [AccessD] Record navigation - find versus new > > What are the Data Entry and Allow Edits properties on the form set to? > > Charlotte Foust > On Sat, Oct 15, 2011 at 8:58 AM, Bob Gajewski > <rbgajewski at roadrunner.com>wrote: > > > Hi All > > > > I am having trouble with what is probably one of the most basic > > functions, but I just can't figure it out and would really appreciate > > if someone could point me in the right direction. > > > > I have a data entry form, with one of the key fields called > > TransactionsEntryNumber (text, length=8, required, indexed, duplicates > > not allowed). I am trying to write the code so that when a user types > > in an entry number, the code looks to see if it exists ... if it does, > > go to the existing record ... if not, continue to the next field as a new > record. > > > > <code> > > Private Sub TransactionsEntryNumber_Exit(Cancel As Integer) > > If IsNull(TransactionsEntryNumber) Or TransactionsEntryNumber = "" > Then > > Dim Msg As String, Response As Integer > > Msg = "Do you want to have an entry number assigned?" > > Response = MsgBox(Msg, vbYesNo + vbQuestion + vbDefaultButton1, > > "Entry Number Assignment") > > If Response = vbYes Then > > TransactionsEntryNumber = > > fAssignEntryNumber(TransactionsFilerCodeID.Column(1), > > DMax("TransactionsEntryNumber", "tblTransactions"), 1) > > Else > > Cancel = True > > Exit Sub > > End If > > Else > > DoCmd.FindRecord TransactionsEntryNumber, acEntire, True, > > acSearchAll, True, acCurrent, True > > End If > > End Sub > > </code> > > > > The 'new' part works perfectly ... probably because I'm starting the > > user in a new record: > > > > Private Sub Form_Open(Cancel As Integer) > > DoCmd.GoToRecord , , acNewRec > > End Sub > > > > ... it's the 'find' that keeps failing (error: unable to save; would > > create > > duplicate) > > > > <error> > > Run-time error '3022': > > > > The changes you requested to the table were not successful because > > they would > > create duplicate values in the index, primary key, or relationship. > > Change the data > > in the field or fields that contain the duplicate data, remove the > > index, or redefine > > the index to permit duplicate entries and try again. > > </error> > > > > Is it as simple as trapping the error? Or should I use two controls > > and stack them? > > > > Thanks, as usual > > Bob Gajewski > > > > -- > > 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 > > >