我有一個連續的表格,我需要填充所有員工的 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 正確插入所有記錄。我不知道我在這里做錯了什么。你能為我指出正確的方向嗎?
uj5u.com熱心網友回復:
連續表格很難處理。由于每個控制元件僅表示一次,因此您無法可靠地為其分配值。
相反,使用表單記錄集:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/392395.html
