首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MS根据值在数组中的字段选择行

MS根据值在数组中的字段选择行
EN

Stack Overflow用户
提问于 2016-06-20 17:30:41
回答 1查看 629关注 0票数 0

我正在使用2007。

我想根据某个字段从数据库中的表中提取数据,比如“汽车ID”。对于每一个“汽车ID”(总共100辆汽车),我想提取所有与该汽车相关的行到excel电子表格中,以便以后对其进行操作。理想情况下,我最终会有100个不同的电子表格,每个电子表格都描述了一辆汽车的历史。

现在,由于我有一个包含100个car ID的向量,所以我希望自动选择car ID,就像它在for循环中一样,而不是手动运行100次查询。

我认为我应该使用VBA,但由于我对和VBA都是新手,所以我不太清楚如何处理这个问题。

任何提示都将不胜感激。非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-20 18:41:44

所以你需要两张桌子。主表包含CarID作为键字段,第二个表包含我们所有的值/兴趣。看来你已经被这样安排好了。

对于下面的示例,您将需要创建一个select查询并以"mySavedQuery“的名称保存它(此时select查询做什么并不重要,因为我们将通过代码对其进行更改)。

在命令按钮的单击中,您可以这样做:

代码语言:javascript
运行
复制
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSQL As String
Dim intLow As Integer
Dim intHigh As Integer
Dim i As Integer

Set db = CurrentDb

intLow = 1
intHigh = DMax("CarID", "Table2")

For i = intLow To intHigh
    strSQL = "SELECT Table1.CarID, Table2.Interest FROM Table1 INNER JOIN Table2 ON Table1.CarID = Table2.CarID " _
           & " WHERE (((Table1.CarID)=" & i & "));"
    Set rs = CurrentDb.OpenRecordset(strSQL)

    If Not (rs.EOF And rs.BOF) Then
        rs.MoveFirst

        Set qdf = db.QueryDefs("mySavedQuery")
        qdf.SQL = strSQL

        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "mySavedQuery", "C:\Users\SClark\Desktop\Survey" & i & ".xls", True
    End If

Next i

Set rs = Nothing
Set db = Nothing
Set qdf = Nothing

这里所发生的是,我们确定最小CarID =1,并使用DMAX来找到最大CarID。然后迭代这些值,并导出每个CarID的一个Excel表。

这是一个下流的例子,但应该让你走上正确的道路.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37928476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档