I am doing a simple add procedure from a form. The item is always added, but in addition to adding the record I want to update a field related to the Building it is assigned to.

[VBA]Private Sub cmdNewReservation_Click()
On Error GoTo Err_cmdNewReservation_Click
Dim strSQL As String
Dim db As Database
Dim qDef As QueryDef
Dim rst As Recordset
Dim fieldYear As String
Dim fieldName As String
Dim initRes As Integer
strSQL = "SELECT Building.BuildingID, Building.UnitsReserved06, Building.UnitsReserved07, " & _
"Building.UnitsReserved08, Building.UnitsReserved09, Building.UnitsReserved10, " & _
"[Buildings Reserved].AssignToBuilding " & _
"FROM Building, [Buildings Reserved] " & _
"WHERE (((Building.BuildingID)=[Buildings Reserved]![AssignToBuilding]));"

If Not bAdd Then
DoCmd.GoToRecord , , acNewRec
Me.cmdNewReservation.Caption = "Insert Reservation"
Me.Unit_Type.Locked = False
Me.Unit_Name.Locked = False
Me.Bldg_Name.Locked = False
Me.Year_Reserved.Locked = False
Me.Assign_to_Bldg.Locked = False
bAdd = True
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
fieldYear = Right(Me.Year_Reserved, 2)
Set db = CurrentDb
Set qDef = db.CreateQueryDef("qryUpdateProjUnit", strSQL)
Set rst = qDef.OpenRecordset
db.QueryDefs.Delete ("qryUpdateProjUnit")
Me.lstReserve.Requery
fieldName = "UnitsReserved" & fieldYear
If rst.RecordCount = 1 Then
MsgBox "This will increment Projected Units for the year 20" & fieldYear & "."
MsgBox fieldName & " in table Building will be incremented."
initRes = rst.Fields(fieldName).Value
rst.Edit
rst.Fields(fieldName).Value = rst.Fields(fieldName).Value + 1
rst.Update
rst.Close
End If
Me.cmdNewReservation.Caption = "Add Reservation"
Me.Unit_Type.Locked = True
Me.Unit_Name.Locked = True
Me.Bldg_Name.Locked = True
Me.Year_Reserved.Locked = True
Me.Assign_to_Bldg.Locked = True
bAdd = False
End If
Exit_cmdNewReservation_Click:
Exit Sub
Err_cmdNewReservation_Click:
If Err.Number <> 2501 And Err.Number <> 57097 Then
MsgBox Err.Number & ": " & Err.Description
End If
Resume Exit_cmdNewReservation_Click

End Sub[/VBA]

It usually enters the Error trap in line with: rst.Edit. Any ideas why it thinks this is a read-only object? I have done similar procedures in other databases, but this one seems to be causing trouble.