【发布时间】:2015-07-15 17:22:09
【问题描述】:
此代码是一个函数,而不是私有子例程。我突然收到 Me.[field name here] 的这个错误。我没有在我的其他代码中遇到这个错误,只是在这个代码中。这是我的完整代码,没有无聊的结尾部分,但我从以下行开始出现错误:
Me.assignedby.Column(1)
Public Function AssignNullProjects() As Long
Dim db As dao.Database
Dim rs As dao.Recordset
Dim strSQL As String
assignedby = TempVars("user").Value
Set db = CurrentDb
strSQL = "SELECT CFRRRID FROM CFRRR WHERE assignedto Is Null"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If Not rs.BOF And Not rs.EOF Then
While Not rs.EOF
strSQL = "UPDATE CFRRR SET assignedto = " & GetNextAssignee & ", assignedby = " & Me.assignedby.Column(1) & ", Me.Dateassigned = #" & Now & "#, Me.actiondate = #" & Now & "#, Me.Workername = " & _
Me.assignedto.Column(0) & ", Me.WorkerID = " & Me.assignedto.Column(0) & " WHERE CFRRRID = " & rs!CFRRRID
db.Execute strSQL, dbFailOnError
rs.MoveNext
Wend
End If
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
上述错误的可能原因是什么,以及如何消除它?
【问题讨论】:
-
您的某些 Mes 似乎在引号中。编辑:他们肯定是。
-
一般来说,Me.[fieldname] 是对 Me 的无效使用。这没有任何意义,因为我在另一个宏中确实使用了类似的代码并且它工作正常。它只是在这里不起作用。不确定这是因为这是公共功能而不是私有子
-
将 UPDATE 替换为: "UPDATE CFRRR SET assignmentto = " & GetNextAssignee & ", assignmentby = " & Me.assignedby.Column(1) & ", Dateassigned = #" & Now & "# , actiondate = #" & Now & "#, Workername = " & _ Me.assignedto.Column(0) & ", WorkerID = " & Me.assignedto.Column(0) & " WHERE CFRRRID = " & rs!CFRRRID db .执行strSQL,dbFailOnError
-
告诉我进展如何。我已经很多年没有做过 VB(或 VBA)了,但我认为你的问题是将 Me 包含在查询的硬编码部分(字符串文字)中。
-
不,那没用。仍然得到同样的错误。我在这里收到错误:
" & Me.assignedby.Column(1) & "
标签: ms-access vba ms-access-2010