当我运行代码时,它会停止并给我一个错误
3027
Database or Object is Read only
当我点击调试时,它指向rec.edit。
但我不知道它是如何只读的。我检查确保对象已关闭,同样的错误仍然出现。提出它的人说它对他们有用,并且他们没有任何与readonly有关的问题。有什么想法吗?
Public Function HitTest()
Dim db As Database
Dim rec As DAO.Recordset
Dim fld As DAO.Field
Set db = CurrentDb
Set rec = db.OpenRecordset("PlayerSal")
EditTable = "PlayerSal"
For Each fld In rec.Fields
If fld.Name <> "Name" And fld.Name <> "Salary" And Left(fld.Name, 4) <> "Per_" Then
strFieldName = "Per_" & fld.Name & ""
'rs.Fields (strFieldName)
'X = "IIf(rec([" & fld.Name & "]) <> 0, Format((rec([Salary]) / rec([" & fld.Name & "])), '$#,###.##'), 0)"
If FieldExists(EditTable, strFieldName) Then
Else
'AltTable = "ALTER TABLE " & EditTable & " ADD COLUMN " & strFieldName & " Double;"
'CurrentDb.Execute (AltTable)
End If
rec.Edit
X = IIf(rec((fld.Name)) <> 0, Format((rec("Salary") / rec((fld.Name))), "$#,###.##"), 0)
rec.Fields(strFieldName).Value = X
rec.Update
End If
Next fld
End Function
因为我知道Access有时候真的很傻,所以我决定尝试一个新的数据库,然后导入我需要的几个文件。我有时候随意做这件事会让事情因某种原因而起作用。当我导入下面看到的模块时,它会在
处停止 If FeildsExists(EditTable, strFieldName)
它说Sub或Function没有定义......我不知道这两者中的任何一个是否与简单的东西有关......但是这变得很愚蠢......特别是当把这个放在一起的人有它工作时细
答案 0 :(得分:1)
我知道下半场。 :o)您的函数名称错误。你有“如果FeildsExists”,它应该是“If FieldExists”。