首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以一种形式创建多条记录。每个记录只有一个字段更改

以一种形式创建多条记录。每个记录只有一个字段更改
EN

Stack Overflow用户
提问于 2015-10-20 20:04:24
回答 1查看 8.5K关注 0票数 2

在我工作的地方,我们从客户那里接收电子仪表,并设法解决他们的错误。我们一次将收到4-8米,它们都有相同的问题,相同的规格,相同的一切,每一米之间唯一不同的是序列号。我想要能够输入每一个序列号,和共同的规格都以一种形式来创建多个记录。

这是我的表格的一张照片。我一次只能为一个序列号创建记录,但我想一次做到这一点,以便更快更容易地输入数据。

仪表入库表

所以总结,多米,所有相同的规格,不同的序列号。我想把它全部输入到一个表单中,并创建多个记录。谢谢你对我的帮助和洞察力。

-Chris

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-21 15:03:58

您可以将子表单绑定到存储计价器记录的表中,然后在主窗体上有一些未绑定字段,允许您输入将在批记录中重复的信息。您还可以在主窗体上放置另一个未绑定文本框,以指定需要具有此重复信息的记录数量。

因此,在下面的模拟中,您将指定需要多少条记录(红色框),例如10条记录:

然后您将为这10条记录(蓝色框)提供重复的数据:

然后单击一个按钮,该按钮将创建使用所提供的重复信息指定的记录数:

然后,它将只是一个案例,为您生成的批处理中的每个记录完成唯一的序列号。

下面是我在Add按钮上使用的VBA:

代码语言:javascript
复制
Private Sub cmdAddRecords_Click()

    batchAdd Me.txtRecords
    Me.tblMeters_sub.Requery

End Sub

...and调用的batchAdd子例程:

代码语言:javascript
复制
Public Sub batchAdd(records As Integer)

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i As Integer
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset("tblMeters")

    i = 1

    Do While i <= records
    
        rs.AddNew
        rs!SerialNumber = ""
        rs!MeterFirmware = Me.MeterFirmware
        rs!MeterCatalog = Me.MeterCatalog
        rs!Customer = Me.Customer
        rs!MeterKh = Me.MeterKh
        rs!MeterForm = Me.MeterForm
        rs!MeterType = Me.MeterType
        rs!MeterVoltage = Me.MeterVoltage
        rs.Update
        
        i = i + 1

    Loop
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

End Sub

这里有一个连接到模拟 (如果您想看得更近一些)。

更新

在回答您关于子表单是否可以被过滤以便它不只是成为所有米的大列表的问题时,您可以向tblMeters表中添加另一个字段,该字段将占用向表中添加记录的日期和时间:

然后,您需要在batchAdd子中添加另一行,将系统时间和日期放在这个新字段中:

代码语言:javascript
复制
...

Do While i <= records

    rs.AddNew
    rs!SerialNumber = ""
    rs!MeterFirmware = Me.MeterFirmware
    rs!MeterCatalog = Me.MeterCatalog
    rs!Customer = Me.Customer
    rs!MeterKh = Me.MeterKh
    rs!MeterForm = Me.MeterForm
    rs!MeterType = Me.MeterType
    rs!MeterVoltage = Me.MeterVoltage
    rs!DateAdded = Now                  ' <-- HERE!
    rs.Update
    
    i = i + 1

Loop

...

然后需要更改子表单的Record Source属性(Design > subform > property > Data选项卡> Record ):

将以下SQL放在其中:

代码语言:javascript
复制
SELECT TOP 15 tblMeters.SerialNumber, tblMeters.MeterFirmware, tblMeters.MeterCatalog, 
tblMeters.Customer, tblMeters.MeterType, tblMeters.MeterForm, tblMeters.MeterKh, 
tblMeters.MeterVoltage, tblMeters.DateAdded 
FROM tblMeters 
ORDER BY tblMeters.DateAdded DESC;

..。它将按日期/时间字段(最近在顶部)排序记录,然后只显示这些记录中的前15条。如果您想要不同数量的记录,请将TOP 15位更改为您选择的不同数量。

当您单击"Add“时,您的新一批记录应该添加到列表的顶部,并且列表应该保留最多15条记录(或您在TOP ...中指定的任何数字)。

请注意,当我测试这一点时,快速单击"Add“按钮几次似乎不会让TOP ...筛选器麻烦,但只要在每个”添加“按钮之间有一秒钟或更长的时间,单击它就会很好。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33245849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档