首页 > 解决方案 > 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`

显然,我做错了什么,但我无法弄清楚。提前感谢任何可以帮助我的人。

标签: ms-accessvbams-access-2010

解决方案


您需要以下形式的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

推荐阅读