如何使用非文字字符串从VBA中的记录集中提取数据



根据我的理解,如果我想从记录集中提取数据,那么这段代码就足够了:strFirstName = rstEmployees!FirstName,其中rstEmployees是记录集,FirstName是列的名称。然而,我想知道如何更抽象地做到这一点,并使用字符串变量名而不是FirstName,这样我就可以更改这个变量并获得不同的结果。

使用Fields集合并传递变量:

= rstEmployees.Fields(strFirstName).Value

如果我正确理解了这个问题,您可以使用RecordsetFields属性,并将字段名或数组索引作为关键字。https://learn.microsoft.com/en-us/sql/ado/reference/ado-api/fields-collection-ado?view=sql-服务器-ver15

样本代码:

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'A sample recordset.
With rs.Fields
.Append "id", adInteger
.Append "first_name", adVarChar, 50
.Append "last_name", adVarChar, 50
End With
rs.Open
rs.AddNew Array("id", "first_name", "last_name"), Array(1, "John", "Doe")
'Accessing the fields.
Debug.Print "Literal: " & rs!first_name
Debug.Print "String: " & rs.Fields("first_name").Value
Debug.Print "Abbr. code: " & rs("first_name")
rs.Close

最新更新