ms-access - Access 2010 VBA循环不向表中添加数据行
问题描述
这个数据库将是我的死亡......我正在尝试以表格形式获取结果并将数据复制到表格中。我创建了一个按钮来希望这样做,但它所做的只是打开没有数据的表。我需要在表中看到的数据可以是成百上千条记录。这是我到目前为止所拥有的:
`Private Sub Command42_Click()
Dim db As Database
Dim rec As Recordset
Set db = CurrentDb
db.Execute "Delete * FROM Import70_TBL"
Set rec = CurrentDb.OpenRecordset("Import70_tbl")
Do Until rec.EOF
rec.AddNew
rec("CCAMPUS") = Me.CCAMPUS
rec("FUNCAFF") = Me.FUNCAFF
rec("BUILDING") = Me.BUILDING
rec("ROOM_NO") = Me.ROOM_NO
rec("BLDG_NAME") = Me.BLDG_NAME
rec("ROOMCD") = Me.ROOMCD
rec("ASF") = Me.ASF
rec("STATIONS") = Me.STATIONS
rec("FAC_DEPT") = Me.FAC_DEPT
rec("PGM_CODE") = Me.PGM_CODE
rec("CCPEC") = Me.CCPEC
rec("CCLSIZE") = Me.CCLSIZE
rec("CRESIZE") = Me.CRESIZE
rec("NSFDISC") = Me.NSFDISC
rec("AREA_UNITS") = Me.AREA_UNITS
rec("BUILDING_ZIP_CODE") = Me.BUILDING_ZIP_CODE
rec.Update
Loop
rec.Close
DoCmd.OpenTable "Import70_tbl"
End Sub`
显然,我做错了什么,但我无法弄清楚。提前感谢任何可以帮助我的人。
解决方案
您需要以下形式的RecordsetClone:
Private Sub Command42_Click()
Dim db As DAO.Database
Dim res As DAO.Recordset
Dim rsc As DAO.Recordset
Dim fld As DAO.Field
Set db = CurrentDb
db.Execute "Delete * From Import70_tbl"
Set rec = db.OpenRecordset("Import70_tbl")
Set rcs = Me.RecordsetClone
Do Until rcs.EOF
rec.AddNew
For Each fld in rcs.Fields
res.Fields(fld.Name).Value = fld.Value
Next
rec.Update
rcs.MoveNext
Loop
rec.Close
rcs.Close
DoCmd.OpenTable "Import70_tbl"
End Sub
推荐阅读
- asp.net-core-2.0 - 如何在.net core web api中将剃刀视图呈现为字符串?
- java - java try/catch 块中的编译类问题
- javascript - 如何使用 jquery 将输入复制到子输入?
- angular - 带有父路由参数的角度延迟加载
- javascript - 如何将对象属性分配给 XMLHTTP 请求的结果
- javascript - 使用 Java 脚本按列标题上的相应列对 HTML 表进行排序单击
- python - Pandas len 根据给定条件
- javascript - 有没有办法同步解决一个承诺?(或可以的替代库)
- rust - 替代退货选项
]>> 从 Rust fn 到 Wasm - javascript - 使用 jQuery 包装展开的 textNode