0

我试图让一个命令按钮将数据插入新表,同时选择一条记录并更新它。我将在下面粘贴我的代码并尝试解释我的问题。

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)”。我愚弄了一些东西,但后来我遇到了不同的问题。基本上我只是想取消选中“信息”中的复选框,其中未绑定的文本(AssignKit)与“InvKitNumber”中的相同数字匹配。这是解决这个问题的正确方法吗?我已经使用 UPDATE 尝试了一行代码,但由于“参数太少”,我也无法完全弄清楚。谢谢

4

2 回答 2

1

如果InvKitNumber真的是一个数字,那么你strSQL应该是

strSQL = "SELECT * FROM Info WHERE InvKitNumber = " & Me.AssignKit
于 2013-07-17T14:08:22.880 回答
0

我碰巧遇到了同样的问题。我测试了所有解决方案,并决定改变所有可能发挥作用的东西。我将查询减少到Select * From Index,但我仍然被错误阻止。

你可能不相信,但我最终意识到这是桌子的名字!是的,表的名称是Index,当我删除e并将其更改为Indx时,一切都很顺利!索引是Access 的保留字吗?我不知道,如果我一开始命名表时没有产生错误,我会感到惊讶。

由于您的表名是 INFO 并且它是一个常用词,我认为您应该更改表名并使用其他名称测试相同的查询,因为 Access 似乎喜欢保留很多词!

于 2014-01-09T19:46:12.670 回答