i still got exactly the same problem even i ve applied a lot of advises from a lot of forums. frustrated i finally do this and very happy with the result.
in before_insert event of the form, i write
vb codes to query the maximum number in the table, add 1 to it and set it to the auto_increament field. something likes:
Function MaxEID()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim tmpEID As Long
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.ActiveConnection = cn
rs.Open "qMaxEID", cn, , , adCmdTable
tmpEID = rs!MaxEID
MaxEID = tmpEID
rs.Close
Set rs = Nothing
Set cn = Nothing
End Function
where "qMaxEID" is a pre-designed query to get the maximum value from auto_increament field and the following codes will "auto" add the new number when you insert new record.
Private Sub Form_BeforeInsert(Cancel As Integer)
'Add new event ID
Me.EventID = MaxEID() + 1
End Sub
hope this helps