我尝试运行这段代码VBA的访问错误91
Public Sub Production_UpdateStatus(ByVal lngProductionId As Long, _
ByVal NewProductionStatus As eProductionStatus)
Dim oDb As DAO.Database
Dim oRst As DAO.Recordset
Dim StrSql As String
Dim strProductionStatus As String
On Error GoTo Err_Infos
GetCurrentProductionStatusString NewProductionStatus, strProductionStatus
Set oDb = CurrentDb
'Mise a jour du staut de production
StrSql = "UPDATE tProduction SET tProduction.Statut= '" & strProductionStatus & "'" _
& " WHERE (tProduction.IdProduction=" & lngProductionId & ");"
oDb.Execute StrSql
'Fermeture des connexions
oRst.Close
oDb.Close
Set oDb = Nothing
Set oRst = Nothing
Exit_currentSub:
Exit Sub
Err_Infos:
MsgBox "Erreur #" & Err.Number & " : " & Err.Description
Resume Exit_currentSub
End Sub
此代码的工作,但给我的错误91.
对象变量或带块变量未设置
它生成以下SQL查询:
UPDATE tProduction SET tProduction.Statut= 'Nouvelle' WHERE (tProduction.IdProduction=2);
当我测试直接查询时,我没有任何错误。你能帮我消除这个错误吗?
谢谢
什么错误? –
删除oRst.Close并设置oRst =没有行。 oRst未初始化并导致错误,但您不需要此代码的oRst。 – RADO
这个错误是否发生在'oDb.Execute StrSql'上? VBA中不需要分号,尽管我不认为这是因为这里的原因。 –