我正在尝试使用命令按钮将数据插入新表中,同时选择一条记录并进行更新。我将在下面粘贴我的代码并尝试解释我的问题。
CurrentDb.Execute " INSERT INTO Crew " _
& "(CrewName,KitNumber,ActionDate,ReturnDate) VALUES " _
& "('" & Me.AssignCrew & "', '" & Me.AssignKit & "','" & Me.AssignDate & "','');"
Crew.Form.Requery
strSQL = "SELECT * FROM Info 'WHERE InvKitNumber = '" & Me.AssignKit & "'"
Set myR = db.OpenRecordset(strSQL)
myR.Edit
myR!Available = False
myR.Update
Set myR = Nothing
Info.Form.Requery
AssignKit = ""
AssignKit.SetFocus
所以插入时一切正常。但是当它过去时我得到语法错误,调试器突出显示“Set mrR = db.OpenRecordset(strSQL)”。我愚弄了一些事情,但后来我遇到了不同的问题。基本上我只是试图取消选中“Info”中的复选框,其中未绑定文本(AssignKit)与“InvKitNumber”中的相同数字匹配。这是解决这个问题的正确方法吗?我已经使用UPDATE尝试了一行代码但由于“参数太少”而无法解决这个问题。感谢
答案 0 :(得分:1)
如果InvKitNumber
确实是一个数字,那么strSQL
应为
strSQL = "SELECT * FROM Info WHERE InvKitNumber = " & Me.AssignKit
答案 1 :(得分:0)
我碰巧遇到了同样的问题。我测试了所有解决方案,并决定改变可能发挥作用的一切。我将查询缩小为Select * From Index
,但仍然被错误阻止。
你可能不相信,但我最终意识到这是桌子的名字!是的,表的名称是索引,当我删除 e 并将其更改为 Indx 时,一切顺利! 索引是Access的保留字吗?我不知道,如果因为我在第一时间命名表时没有产生错误,我会感到惊讶。
由于你的表名是INFO而且它是一个常用词,我认为你应该更改表的名称并用其他名称测试相同的查询,因为Access似乎想保留很多单词!