在我工作的地方,我们从客户那里收到电子仪表并尝试解决他们所遇到的错误。我们将同时收到4-8米的所有问题,相同的规格,相同的一切,每个仪表之间唯一不同的是序列号。我希望能够以一种形式输入每个序列号和常用规格来创建多个记录。
这是我对表格的照片。我一次只能为一个序列号创建记录,但我想一次性完成所有操作,以便更快更轻松地输入数据。
总结,多米,所有相同的规格,不同的序列号。我想将它全部输入到表单中并创建多个记录。感谢您提供给我的任何帮助或见解。
-Chris
答案 0 :(得分:2)
您可以将子表单绑定到存储计量表记录的表,然后在主表单上放置一些未绑定的字段,以允许您输入将在您的批记录中重复的信息。您还可以在主窗体上放置另一个未绑定的文本框,以指定您希望具有此重复信息的记录数。
因此,在下面的模型中,您可以指定所需的记录数(红框),例如10条记录:
然后你将提供将为这10条记录重复的数据(蓝框):
然后,您可以单击一个按钮,该按钮将创建使用重复信息指定的记录数:
这样就可以完成您生成的批次中每条记录的唯一序列号。
这是我在“添加”按钮上使用的VBA:
Private Sub cmdAddRecords_Click()
batchAdd Me.txtRecords
Me.tblMeters_sub.Requery
End Sub
...以及它调用的batchAdd
子例程:
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
Here's a link to the mock-up(如果你想仔细看看)。
<强>更新强>
在回答您关于是否可以过滤子窗体的查询时,它不仅仅成为所有仪表的大列表,您可以在 tblMeters 表中添加另一个字段来获取日期和记录添加到表中的时间:
然后,您需要在batchAdd
子元素中添加另一行,将系统时间和日期放在此新字段中:
...
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 View&gt; select subform&gt; Property Sheet&gt; Data tab&gt; Record Source):
将以下SQL放在那里:
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
位更改为您选择的其他数字。
当您点击“添加”时,您的新批记录应添加到列表顶部,列表最多应保留15条记录(或您在TOP ...
中指定的任何数字)
请注意,当我测试它时,快速单击“添加”按钮几次似乎会导致sql不打扰TOP ...
过滤器,但只要在每个过滤器之间有一秒钟或更长时间“添加”点击它似乎工作正常。
希望这有帮助。