需要表单上的按钮以将表的字段名称插入 Access 中的另一个表

Posted

技术标签:

【中文标题】需要表单上的按钮以将表的字段名称插入 Access 中的另一个表【英文标题】:Need button on form to insert field names of a table into another table in Access 【发布时间】:2021-01-18 23:35:40 【问题描述】:

这里有类似的问题和答案,但我是这样的 VBA 初学者,我没有能力对代码进行更改以使其适合我。理想情况下,这是我需要在 Access 数据库中创建的内容。

    在表单上有一个包含表名的文本字段。 按下的按钮将该表及其字段名称插入到单独的表中(为方便起见,将其称为 TableFields,包含“TableName”和“FieldName”列)。

这可能吗?如果在其他地方回答了这个问题,有人可以指出我正确的方向吗?提前谢谢!

看起来这篇文章很相似,但对我来说不够具体/简单: How to List Field's Name in table in Access Using SQL

【问题讨论】:

【参考方案1】:

使用列出表格的组合框或列表框。

按钮单击或组合框更新后事件中的代码,如:

Dim rst As DAO.Recordset, db As DAO.Database, x As Integer
If Not IsNull(Me.cbxTable) Then
    Set db = CurrentDb
    Set rst = db.OpenRecordset("SELECT * FROM [" & Me.cbxTable & "] WHERE ID=0")
    For x = 0 to rst.Fields.Count - 1
        db.Execute "INSERT INTO TableFields(TableName, FieldName) " & _
                   "VALUES('" & Me.cbxTable & "','" & rst(x).Name & "')"
    Next
End If

替代代码。

Dim rst1 As DAO.Recordset, rst2 As DAO.Recordset, x As Integer
If Not IsNull(Me.cbxTable) Then
    Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM [" & Me.cbxTable & "] WHERE ID=0")
    Set rst2 = CurrentDb.OpenRecordset("SELECT * FROM TableFields WHERE ID=0")
    For x = 0 to rst1.Fields.Count - 1
        rst2.AddNew
        rst2!TableName = Me.cbxTable
        rst2!FieldName = rst1(x).Name
        rst2.Update
    Next
End If

【讨论】:

以上是关于需要表单上的按钮以将表的字段名称插入 Access 中的另一个表的主要内容,如果未能解决你的问题,请参考以下文章

基于单击命令按钮将表从 Access 导出到 Excel

Access 2013 中 1:m 表的主窗体和子窗体

如何在 Access VBA 中评估字段名称的文本

将表从两个Access数据库合并到一个新的公用数据库中

访问 - 使用父表单上的按钮使子表单字段不可见:)

使用窗体上的按钮将值插入Microsoft Access数据库