更改标题显示和从记录集到Excel工作表的顺序

问题描述 投票:0回答:1

我有一个excel表格,我用作数据库,以及一个搜索表单,允许用户根据一些标准搜索信息,并在新表格中显示过滤后的结果。

我正在使用SQL来获取数据,并将其显示给用户。

我使用类似top open connection的东西,然后创建一个记录集并将我的sql请求传递给它

m_Connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=Yes;"";"

Set OpenRecordset = CreateObject("ADODB.Recordset")
    OpenRecordset.Open sql, GetConnection(), 3, 3, &H1

Set rst = OpenRecordset("SELECT * FROM [Database$] Where " & Myconditions & ";")

一切正常,但我需要允许用户选择列标题名称和顺序可能与我在工作表中所拥有的不同,我从中选择我称之为数据库

我们需要这个,因为用户在不同的国家/地区,因此显示名称将根据用户的国家/地区进行配置,但我们也希望允许用户根据需要更改显示名称和字段顺序,因为显示名称可能太长(多行)。

我真正的“数据库”表大约有110列,大约有1000条记录(行)。

我无法发布真实数据,因为它是保密的,但为了帮助您理解我,我创建了这个代表我所拥有的实例

让我们假设我有这个“数据库”

enter image description here

用户进入该搜索屏幕以从数据库中选择他需要的信息

enter image description here

我希望用户将获得此结果,而不是以相同的顺序和数据库的显示

enter image description here

如您所见,结果页面中列的显示名称和顺序与“数据库”表不同

我想创建一个配置页面,用户可以在其中指定他想要的显示名称以及他希望显示字段的顺序。类似的东西

enter image description here

有没有快速的方法直接在SQL / EXCEL的Recordset中执行此操作,或者我应该在获取数据后使用vba更改excel表中的标题?如果是这样,我必须在vba中创建一个包含数据库名称和显示名称的数组,并在我显示结果页面之前将其替换为相应的数据库名称?有什么建议 ?关于字段顺序的相同问题,如何根据用户选择的顺序对它们进行排序?任何快速的方式?

感谢任何能够提供最佳方法帮助的人

sql excel vba recordset
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.