Rusty Hammond
rusty.hammond at cpiqpc.com
Wed Apr 6 09:46:37 CDT 2011
Okay, now I remember what's going on. I had to go to Access 97 Developer's Handbook (page 269)to refresh my memory (page 1540 of the Access 2000 Developer's Handbook volume 1). You mentioned it in your original post that SQL doesn't create the autonumber value until after the record is created. When using the AddNew method on a Dynaset-type recordset, as soon as you do .Update, that new record gets added to the end of the recordset and is NOT the current record. To get to that new record, you use the .LastModified property of the recordset. You can use either of the following methods to get to the new record: .BookMark = .LastModified OR .Move 0, .LastModified Then get the value of the ID field. The nice thing is it works with either a linked SQL table or Access table. You new code should look like the following (I've rem'ed out your existing lines so you can see the changes): ' 'Adds a record to the table saying that a specific user logged in at a specific time ' '*+ Private class functions Private Function mPLSLogin(blnLogIn As Boolean) Dim rs As DAO.Recordset Dim db As DAO.Database On Error GoTo Err_mPLSLogin Set db = dbDAOCurr Set rs = db.OpenRecordset("usystblPLSLog", dbOpenDynaset, dbSeeChanges) If mlngIDUser = 0 Then Exit Function With rs .AddNew !PLSL_IDPLSUSR = mlngIDUser !PLSL_FE = CurrentProject.Name !PLSL_Login = blnLogIn !PLSL_WorkstationID = CurrentMachineName() 'Take out the following two lines - get the ID value after the Update - RustyH 'On Error Resume Next 'mlngLogID = !PLSL_ID .Update 'Added the following line - RustyH .BookMark = .LastModified 'If Err Then mlngLogID = !PLSL_ID 'End If .Close End With Exit_mPLSLogin: On Error Resume Next Set rs = Nothing If Not (rs Is Nothing) Then rs.Close: Set rs = Nothing Exit Function Err_mPLSLogin: Select Case Err Case 0 '.insert Errors you wish to ignore here Resume Next Case Else '.All other errors will trap Beep PLSLogErr Err.Number, Err.Description, Erl, cstrModule, "mPLSLogin" Resume Exit_mPLSLogin End Select Resume 0 '.FOR TROUBLESHOOTING End Function ********************************************************************** WARNING: All e-mail sent to and from this address will be received, scanned or otherwise recorded by the CPI Qualified Plan Consultants, Inc. corporate e-mail system and is subject to archival, monitoring or review by, and/or disclosure to, someone other than the recipient. **********************************************************************