访问记录集的VBA访问元素

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

如果记录集连接到表,如何选择实际变量?

 Dim db As DAO.Database
 Set db = CurrentDb
 Dim rs As DAO.Recordset
 Set rs = Currentdb.OpenRecordset("SELECT tableA.data, tableB.data “ & _
                                  “FROM talbeA INNER JOIN tableB ON tableA.ID = TableB.xyz”)

 Debug.Print (srs!tableA.data) ' does not work

是的,数据可以是TableA或B的元素...但是如何指定?

谢谢你,莱因哈特

像“as TabA_data”这样的解决方法可以工作,但必须有一个更优雅的解决方案?

vba ms-access recordset
1个回答
0
投票

如果您确实在不同的表中有两个具有相同名称的字段,那么您有多种选择。

  • 首先,您实际上可以在表中以不同的方式命名字段。例如,表

    Address
    中的
    Customer
    可以变为
    CustomerAddress
    ,而
    Address
    中的
    Supplier
    可以变为
    SupplierAddress
    。这可能是我推荐的方法,因为它可以防止歧义/混乱。

  • 其次,正如您所提到的,您可以在查询中为字段名称添加别名。

  • 最后,您可以通过位置来引用记录集中的字段:

Debug.Print rs(0)  ' Recordsets are 0-indexed, so this returns the first field

我不热衷于这样做,好像记录集中引入了额外的字段,这可能不再起作用。

© www.soinside.com 2019 - 2024. All rights reserved.