ms-access – 访问连续表单:添加控件而不修改基础表?

我正在制作一个简单的Access表单(连续视图).这在“详细信息”部分中有一个复选框,在页脚中有一个“命令”按钮.

这样,用户可以使用复选框“选择”多个记录,然后单击按钮上的命令按钮以运行更新所选记录的脚本.无需永久存储这些检查值.

通常,我会在底层表中添加一个布尔字段,并将该复选框与该字段相关联.但有没有办法在不修改表格的情况下做到这一点?即将复选框值存储在内存中?

解决方法

您可以在表单中包含记录选择复选框
断开连接的记录集.这是您在内存中创建的ADO记录集,不受任何数据源的约束.使用记录集中的主键,命令按钮的单击过程可以遍历记录集以检索“选定”记录的主键列表.如果这种方法听起来很有用,请参阅Danny Lesandrini在 Database Journal: Create In-Memory ADO Recordsets上的这篇文章

我根据该文章代码创建了这个表单.主窗体包括一个基于断开连接的记录集的子窗体,该子窗体在子窗体的Form_Open期间加载.

请注意,您实际上不需要在表单中显示主键(ID);只要它包含在记录集中,您就可以在遍历记录集时检索它.

Private Sub Form_Open(Cancel As Integer)
    Dim dbs As DAO.Database
    Dim fld As ADODB.Field
    Dim rstAdo As ADODB.Recordset
    Dim rstDao As DAO.Recordset
    Dim strsql As String

    Set rstADO = New ADODB.Recordset
    With rstAdo
        .Fields.Append "EmployeeID",adInteger,adFldKeyColumn
        .Fields.Append "FirstName",adVarChar,10,adFldMayBeNull
        .Fields.Append "LastName",20,adFldMayBeNull
        .Fields.Append "Selected",adBoolean
        .CursorType = adOpenKeyset
        .CursorLocation = adUseClient
        .LockType = adLockpessimistic
        .Open
    End With

    Set dbs = CurrentDb
    strsql = "SELECT EmployeeID,FirstName,LastName " & _
             "FROM Employees ORDER BY LastName,FirstName"
    Set rstDao = dbs.OpenRecordset(strsql,dbOpenSnapshot)

    Do Until rstDao.EOF
        rstAdo.AddNew
        rstAdo!EmployeeID = rstDao!EmployeeID
        rstAdo!FirstName = rstDao!FirstName
        rstAdo!LastName = rstDao!LastName
        rstAdo!Selected = False
        rstAdo.Update
        rstDao.MoveNext
    Loop

    Set Me.Recordset = rstAdo
    rstDao.Close    
    Set rstDao = nothing
    Set dbs = nothing
End Sub

代码示例使用ADO的早期绑定,这需要为Microsoft ActiveX数据对象的版本设置引用.但是,它可以适用于后期绑定的适当修改.

这种方法并不是轻量级的.但是,它允许您使用选择复选框,而不将它们绑定到实际数据表中的“是/否”字段.当用户可能覆盖共享表中的每个其他选择时,这将是多用户应用程序中的挑战.断开连接的记录集巧妙地避免了这种冲突.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些