从 Form Access 数据库插入 Table

Insert into Table from Form Access Database

我一直在尝试让我的数据库根据来自表单的输入将行添加到库存电子表格中。我尝试了多种不同的方法(如下所列)。任何有关格式化其中之一的帮助,以便它们可以工作,我们将不胜感激。我不知道我是否有语法问题或完全错误地处理这个问题,但我一直主要使用视频中的代码和此处问题的答案来解释如何解决此问题,所以我无法做到这一点很烦人让他们工作。

我已经尝试设置一个可以用宏调用的函数,从表单中提取值

Function Add_Record()
DoCmd.RunSQL "INSERT INTO Inventory (Kit Name, Exp Date, Study) VALUES (' " & [Forms]![Add Kits]![Kit name select] & " ', ' " & [Forms]![Add Kits]![Expiration Date Input] & " ', ' " & [Forms]![Add Kits]![Study Select] & " ');"

End Function

我已经尝试过各种语法更改(我不确定是否需要用 _ 代替空格),但还没有任何效果。

接下来我尝试在表单本身中设置一个按钮以将所有内容包含在一个地方。

Private Sub Add_Record_Click()
CurrentDb.Execute "INSERT INTO Inventory (Kit Name, Exp Date, Study) Values (' " & Me.Kit_name_select & "', ' " & Me.Expiration_Date_Input & "', ' " & Me.Study_Select & "')"
End Sub

这个方法我也试过


    strSQL = "INSERT INTO Inventory (Kit Name, Exp Date, Study)
VALUES (
    Forms!Add Kits!Kit_name_select.Value,
    Forms!Add Kits!Expiration_Date_Input.Value,Forms!Add Kits!Study_Select.Value
)"
    DoCmd.RunSQL strSQL

和我一起切换表格!X!X格式。 s,但理论上这不应该是问题所在?我希望出现一些语法问题,或者我需要修复一个大的变化。然而,这很令人恼火,因为所有这些策略都应该根据我所读到的内容来完成我想要做的事情。

非常感谢任何帮助!解释也很棒,因为我显然对此很陌生,但想学习!

同样,这将有希望根据表单的输入向 table 添加一行 - 研究(组合框字符串)、套件名称(组合框字符串)和到期日期(文本框日期)。此外,如果有任何方法可以使其基于另一个输入(数量)进行循环,那也会有所帮助。谢谢!

执行方法对日期字段使用# 分隔符而不是撇号。删除撇号后的 space。

带有space或特殊字符或保留字的对象名称需要[]分隔符。建议不要在命名约定中使用 spaces 或 punctuation/special 字符。

可以使用 For Next 循环根据数量重复输入记录。

Private Sub Add_Record_Click()
Dim x As Integer
For x = 1 to Me.Quantity
    CurrentDb.Execute "INSERT INTO Inventory ([Kit Name], [Exp Date], Study) " & _
             "Values ('" & Me.[Kit name select] & "', #" & Me.[Expiration Date Input] & "#, '" & Me.[Study Select] & "')"
Next
End Sub