【问题标题】:Store multiple records under the same ID in same table同一个ID下的多条记录存储在同一张表中
【发布时间】:2014-07-16 14:34:59
【问题描述】:

我有一张桌子可以接待访问。每次客户访问时,都需要在相同的 ID 号下存储一条新记录,但要更新访问号和其他信息。

我已经更新了访问号码,但我无法在同一个 ID 下存储多条记录。它只是不断覆盖最初包含的记录。

访问表格链接到应该保存数据的表格。 事实上,目前表格只允许我输入一条记录总数(为什么会这样?)

目前它的工作原理是用户输入他们希望为其添加新访问的客户的 ID。将 ID 放入新表单(链接到访问表),他们可以相应地填写数据。

如何让我的表接受多条记录,以及如何在同一个 ID 下获取多条记录?

谢谢

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    我感觉你的 ID 字段设置为索引(无重复)。

    这意味着当插入具有相同 ID 的值时,它将无法插入,因为它违反了键约束。

    我会有一个 VisitID(Indexed No Duplicates Auto Increment),然后是一个 ClientID(Indexed Duplicates Ok)

    然后加载表单并设置 ClientID 来避免键约束问题。

    然后在将值插入表之前收集之前的访问次数并将其与输入的数据一起插入。

    更新

    SQL 查询

    strSQL = "INSERT INTO tblVisits (ClientID,NumberofVisits,DateEntered) VALUES(" &  YourClientIDHERE & "," &  YourNumberofVisists & ",#" Now() & "# );"
    Docmd.RunSQL strSQL
    

    这将插入一行,其中包含 ClientID、NumberofVisitsCurrently 和提交条目的日期/时间。您显然可以更改它以添加访问所需的额外数据。

    如果您在这方面需要更多帮助,我认为您应该在您的问题中添加一些代码,以便我们可以更好地帮助您构建这个

    【讨论】:

    • 我已经按照您所说的进行了所有设置,但我仍然无法输入多个记录或添加多个具有相同 ID 的记录 您在加载时设置 ClientID 到底是什么意思?
    • @Victoria 您说“ID 已放入新表格(链接到访问表),他们可以相应地填写数据。”我的意思是你需要使用ClientID 代替这个ID 并通过ClientID 链接。因此,当您的表单弹出时,您将设置ClientID 并让数据库通过Auto IncrementVisitID 确定为主键。
    • 对。谢谢!但我希望将各种 ClientID 和各自的 VisitID 放在同一张表中
    • @Victoria 是的,这将起作用 VisitID 将只是一个计数器 1...某个数字。 ClientID 将是您问题中用户条目指定的“客户”的链接字段。这将允许“客户”和访问之间的一对多关系。我已经编辑了我的答案,向您展示了在 Access 中执行此操作的查询。
    【解决方案2】:

    假设这是您唯一的关键,您不能(或者更确切地说,不应该)在同一个 id 下拥有多个记录。 id列的重点是唯一标识记录。

    听起来您需要有一个 Clients 表(带有一个 id)和一个 Visits 表(也有一个 id),它指向带有 client_id 列的客户端。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      相关资源
      最近更新 更多