I got error 3001?

S

SF

Hi,

I have the follwoing code that return error 3001. Could anyone advice:

DoCmd.Hourglass True
zz_ProjectID = Me.ProjectID
zz_StatusID = Me.ProjectID.Column(2)

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim rstStatus As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim cmd As String

cmd = "UPDATE tblStatus SET tblStatus.St_DateOut = Now()"
cmd = cmd & " WHERE (((tblStatus.St_StatusID)=" & GetStatusID & "));"


Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("ProjectStatus")
qdf.Parameters("ID") = GetStatusID

Set rst = qdf.OpenRecordset(dbOpenDynaset)

Set rstStatus = dbs.OpenRecordset("tblStatus", dbSeeChanges) ' Link ODBC

rstStatus.AddNew
rstStatus![St_ProjectID] = rst![St_ProjectID]
rstStatus![St_StatusTypeID] = rst![St_StatusTypeID]
rstStatus![St_StatusQualityID] = rst![St_StatusQualityID]
rstStatus![St_DateIn] = Now()
rstStatus![Owner] = rst![Owner]
rstStatus![Update_Time] = Now()
rstStatus![CreatedBy] = rst![CreatedBy]
rstStatus![DateCreated] = Now()
rstStatus![ObjectID] = rst![ObjectID]
rstStatus.Update

Set rstStatus = Nothing
Set rst = Nothing

dbs.Execute cmd, dbFailOnError

Me.ProjectID.Requery
DoCmd.Hourglass False
 
B

Brendan Reynolds

Your code is attempting to pass dbSeeChanges as the second, "Type" argument
of the OpenRecordset method, when it needs to be the third, "Options"
argument. Try changing this line ...

Set rstStatus = dbs.OpenRecordset("tblStatus", dbSeeChanges)

.... to this ...

Set rstStatus = dbs.OpenRecordset("tblStatus", , dbSeeChanges)

Note the extra comma.
 
S

SF

Thank you.

SF

Brendan Reynolds said:
Your code is attempting to pass dbSeeChanges as the second, "Type"
argument of the OpenRecordset method, when it needs to be the third,
"Options" argument. Try changing this line ...

Set rstStatus = dbs.OpenRecordset("tblStatus", dbSeeChanges)

... to this ...

Set rstStatus = dbs.OpenRecordset("tblStatus", , dbSeeChanges)

Note the extra comma.

--
Brendan Reynolds (MVP)


SF said:
Hi,

I have the follwoing code that return error 3001. Could anyone advice:

DoCmd.Hourglass True
zz_ProjectID = Me.ProjectID
zz_StatusID = Me.ProjectID.Column(2)

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim rstStatus As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim cmd As String

cmd = "UPDATE tblStatus SET tblStatus.St_DateOut = Now()"
cmd = cmd & " WHERE (((tblStatus.St_StatusID)=" & GetStatusID & "));"


Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("ProjectStatus")
qdf.Parameters("ID") = GetStatusID

Set rst = qdf.OpenRecordset(dbOpenDynaset)

Set rstStatus = dbs.OpenRecordset("tblStatus", dbSeeChanges) ' Link ODBC

rstStatus.AddNew
rstStatus![St_ProjectID] = rst![St_ProjectID]
rstStatus![St_StatusTypeID] = rst![St_StatusTypeID]
rstStatus![St_StatusQualityID] = rst![St_StatusQualityID]
rstStatus![St_DateIn] = Now()
rstStatus![Owner] = rst![Owner]
rstStatus![Update_Time] = Now()
rstStatus![CreatedBy] = rst![CreatedBy]
rstStatus![DateCreated] = Now()
rstStatus![ObjectID] = rst![ObjectID]
rstStatus.Update

Set rstStatus = Nothing
Set rst = Nothing

dbs.Execute cmd, dbFailOnError

Me.ProjectID.Requery
DoCmd.Hourglass False
 
Top