【发布时间】:2010-06-15 22:37:04
【问题描述】:
在我的数据库中,我有一个用于搜索产品的表单(字段:id、name、manufacturer_id[设置为显示制造商的名称]、category_id、价格)。我希望有能力通过这个表格添加制造商。所以我创建了 vba 脚本,但它不起作用。仍然当我输入新名称时,它会提示我“从列表中选择元素”。我做错了什么?
Private Sub manufacturer_id_NotInTheList(NewData As String, Response As Integer)
Dim strSQL As String, strInfo As String
strInfo = "Manufacturer " & NewData & " is not on the list." & vbCrLf & "Add?"
If MsgBox(strInfo, vbYesNo + vbQuestion, "Element not on the list") = vbYes Then
strSQL = "INSERT INTO manufacturer (name, country, id_distributor) VALUES ('" & NewData & "','Undefined', '0');"
DoCmd.SetWarnings (False)
DoCmd.RunSQL strSQL
Response = acDataErrAdded
Else
Response = acDataErrContinue
NewData = ""
Me.manufacturer_id.Text = ""
End If
End Sub
【问题讨论】:
-
不回答这个问题,但是在调用 DoCmd.RunSQL 之后,您确实需要在某处设置 DoCmd.SetWarnings True,否则您最终可能会错过重要警告(SetWarnings 是系统设置,不会超出范围)。您应该尝试注释掉现有的 DoCmd.SetWarnings 并查看插入是否实际成功。你也可以使用我的 SQLRun() 代码,我已经在 SO 上发布了无数次——它不需要使用 SetWarnings 并且实际上更安全(DoCmd.RunSQL 将应用不一致的更新,而不是完全因错误而失败)。