面临问题在查询访问中以连续形式插入多条记录
Facing problems Inserting multiple records in a continuous form in access from a query
我有一个连续表格,我需要在其中填写所有员工的 ID 和姓名以设置他们的年度目标。我不想通过组合框手动添加它们,因为它可以为单个员工创建重复记录。该表单包含两个名为 EMPID(员工 ID)和 EmpName(员工姓名)的字段。我希望所有 EMPID 和 EmpName 从名为“InsertNameTarget”的查询中以连续形式自动填充。在观看了一些 YouTube 视频后,我想到了如下内容:
Dim i As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("InsertNameTarget")
For i = 0 To rs.RecordCount - 1
DoCmd.GoToControl "EMPID"
DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
EMPID = rs.Fields("EMPID")
EmpName = rs.Fields("EmpName")
rs.MoveNext
Next i
rs.Close
Set rs = Nothing
db.Close
它没有按预期工作。它给了我以下结果:
它给出了 10 条记录中的第一条记录,并且没有将 EMPID 正确插入到所有记录中。我不知道我在这里做错了什么。你能给我指出正确的方向吗?
连续表格很难处理。由于每个控件仅表示一次,因此无法可靠地为其赋值。
改为使用表单记录集:
Dim i As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim frs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("InsertNameTarget")
Set frs = Me.Recordset
Do While Not rs.EOF
frs.AddNew
frs!EMPID = rs.Fields("EMPID")
frs!EmpName = rs.Fields("EmpName")
frs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
我有一个连续表格,我需要在其中填写所有员工的 ID 和姓名以设置他们的年度目标。我不想通过组合框手动添加它们,因为它可以为单个员工创建重复记录。该表单包含两个名为 EMPID(员工 ID)和 EmpName(员工姓名)的字段。我希望所有 EMPID 和 EmpName 从名为“InsertNameTarget”的查询中以连续形式自动填充。在观看了一些 YouTube 视频后,我想到了如下内容:
Dim i As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("InsertNameTarget")
For i = 0 To rs.RecordCount - 1
DoCmd.GoToControl "EMPID"
DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
EMPID = rs.Fields("EMPID")
EmpName = rs.Fields("EmpName")
rs.MoveNext
Next i
rs.Close
Set rs = Nothing
db.Close
它没有按预期工作。它给了我以下结果:
它给出了 10 条记录中的第一条记录,并且没有将 EMPID 正确插入到所有记录中。我不知道我在这里做错了什么。你能给我指出正确的方向吗?
连续表格很难处理。由于每个控件仅表示一次,因此无法可靠地为其赋值。
改为使用表单记录集:
Dim i As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim frs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("InsertNameTarget")
Set frs = Me.Recordset
Do While Not rs.EOF
frs.AddNew
frs!EMPID = rs.Fields("EMPID")
frs!EmpName = rs.Fields("EmpName")
frs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close