G
Guest
We have an Access database that works with a SQL Server database. Since
installing Access 2003, the users can add new records, but not update records.
The following code is triggered by a button on a form, but generates a
message saying "ODBC -- Cannot lock all records". When I click OK it
displays the message "You can't save this record at this time."
It works OK in Access 97, but I want to make it work in Access 2003.
Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
'DoCmd.RunCommand acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.RunCommand acCmdSaveRecord
AddOfficeRecords
cmdEdit.Enabled = False
FName.SetFocus
'cmdCancel.Enabled = False
'cmdSave.Enabled = False
'Me.AllowEdits = False
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub
These are the subroutines
Private Sub AddOfficeRecords()
DoCmd.SetWarnings False
DoCmd.OpenQuery "qDelOfficeMarket_Contact"
Set rsO_M = CurrentDb.OpenRecordset("Office_Market", dbOpenDynaset,
dbOptimistic)
'This would have been a nice place for an array.. Oh well
If CheckPet Or Check131 Then AddOfficeRecord 1, ContactID
If CheckWA Or Check131 Then AddOfficeRecord 2, ContactID
If CheckLA Or Check131 Then AddOfficeRecord 3, ContactID
If CheckSac Or Check131 Then AddOfficeRecord 4, ContactID
If CheckEB Or Check131 Then AddOfficeRecord 5, ContactID
If CheckAz Or Check131 Then AddOfficeRecord 6, ContactID
If CheckCorp Or Check131 Then AddOfficeRecord 7, ContactID
If CheckV Or Check131 Then AddOfficeRecord 8, ContactID
rsO_M.Close
DoCmd.SetWarnings True
End Sub
Private Sub AddOfficeRecord(OfficeVal As Integer, MarketVal As Integer)
rsO_M.AddNew
rsO_M.Fields("marketid") = MarketVal
rsO_M.Fields("officeid") = OfficeVal
rsO_M.Update
End Sub
installing Access 2003, the users can add new records, but not update records.
The following code is triggered by a button on a form, but generates a
message saying "ODBC -- Cannot lock all records". When I click OK it
displays the message "You can't save this record at this time."
It works OK in Access 97, but I want to make it work in Access 2003.
Private Sub cmdSave_Click()
On Error GoTo Err_cmdSave_Click
'DoCmd.RunCommand acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.RunCommand acCmdSaveRecord
AddOfficeRecords
cmdEdit.Enabled = False
FName.SetFocus
'cmdCancel.Enabled = False
'cmdSave.Enabled = False
'Me.AllowEdits = False
Exit_cmdSave_Click:
Exit Sub
Err_cmdSave_Click:
MsgBox Err.Description
Resume Exit_cmdSave_Click
End Sub
These are the subroutines
Private Sub AddOfficeRecords()
DoCmd.SetWarnings False
DoCmd.OpenQuery "qDelOfficeMarket_Contact"
Set rsO_M = CurrentDb.OpenRecordset("Office_Market", dbOpenDynaset,
dbOptimistic)
'This would have been a nice place for an array.. Oh well
If CheckPet Or Check131 Then AddOfficeRecord 1, ContactID
If CheckWA Or Check131 Then AddOfficeRecord 2, ContactID
If CheckLA Or Check131 Then AddOfficeRecord 3, ContactID
If CheckSac Or Check131 Then AddOfficeRecord 4, ContactID
If CheckEB Or Check131 Then AddOfficeRecord 5, ContactID
If CheckAz Or Check131 Then AddOfficeRecord 6, ContactID
If CheckCorp Or Check131 Then AddOfficeRecord 7, ContactID
If CheckV Or Check131 Then AddOfficeRecord 8, ContactID
rsO_M.Close
DoCmd.SetWarnings True
End Sub
Private Sub AddOfficeRecord(OfficeVal As Integer, MarketVal As Integer)
rsO_M.AddNew
rsO_M.Fields("marketid") = MarketVal
rsO_M.Fields("officeid") = OfficeVal
rsO_M.Update
End Sub