从数组中的记录集中获取字段名称
Get fields names from a recordset in an array
我写了一个函数来从 adodb 记录集中获取字段名称到一个数组中(在 VBA 中)并且它工作正常。
现在我正在尝试将代码传输到 vb.net 但我被困在这个函数上:
这是 VBA 工作代码:
Public Function NomiCampi(MyRs As ADODB.Recordset, ByRef Dest())
Dim Flds, i%
Set Flds = MyRs.Fields
ReDim Dest(Flds.Count - 1)
For i = 0 To Flds.Count - 1
Dest(i) = Flds(i).Name
Next i
End Function
我是这样使用的(其中 rs 是一个记录集,Campi 是一个字符串数组):
Call NomiCampi(rs, Campi)
我在 vb.net 中进行了多次尝试,但没有任何效果。这是实际代码(不起作用):
Public Function NomiCampi(ByVal MyRs As ADODB.Recordset) As String()
Dim Matrice(), Flds, i%
Flds = MyRs.Fields
ReDim Matrice(Flds.Count - 1)
For i = 0 To Flds.Count - 1
Matrice(i) = CStr(Flds(i).Name)
Next i
NomiCampi = Matrice
Stop
End Function
我哪里错了?
首先,更改您的函数,使其实际上 returns 某些东西:
Public Function NomiCampi(ByVal MyRs As ADODB.Recordset) As String()
Dim Matrice As String()
Dim Flds As ADODB.Fields
Dim i As Integer
Flds = MyRs.Fields
ReDim Matrice(Flds.Count - 1)
For i = 0 To Flds.Count - 1
Matrice(i) = CStr(Flds(i).Name)
Next i
Return Matrice
End Function
然后调用:
Dim Campi As String() = NomiCampi(rs)
或者,如果您已经声明 Campi
:
Campi = NomiCampi(rs)
我写了一个函数来从 adodb 记录集中获取字段名称到一个数组中(在 VBA 中)并且它工作正常。
现在我正在尝试将代码传输到 vb.net 但我被困在这个函数上:
这是 VBA 工作代码:
Public Function NomiCampi(MyRs As ADODB.Recordset, ByRef Dest())
Dim Flds, i%
Set Flds = MyRs.Fields
ReDim Dest(Flds.Count - 1)
For i = 0 To Flds.Count - 1
Dest(i) = Flds(i).Name
Next i
End Function
我是这样使用的(其中 rs 是一个记录集,Campi 是一个字符串数组):
Call NomiCampi(rs, Campi)
我在 vb.net 中进行了多次尝试,但没有任何效果。这是实际代码(不起作用):
Public Function NomiCampi(ByVal MyRs As ADODB.Recordset) As String()
Dim Matrice(), Flds, i%
Flds = MyRs.Fields
ReDim Matrice(Flds.Count - 1)
For i = 0 To Flds.Count - 1
Matrice(i) = CStr(Flds(i).Name)
Next i
NomiCampi = Matrice
Stop
End Function
我哪里错了?
首先,更改您的函数,使其实际上 returns 某些东西:
Public Function NomiCampi(ByVal MyRs As ADODB.Recordset) As String()
Dim Matrice As String()
Dim Flds As ADODB.Fields
Dim i As Integer
Flds = MyRs.Fields
ReDim Matrice(Flds.Count - 1)
For i = 0 To Flds.Count - 1
Matrice(i) = CStr(Flds(i).Name)
Next i
Return Matrice
End Function
然后调用:
Dim Campi As String() = NomiCampi(rs)
或者,如果您已经声明 Campi
:
Campi = NomiCampi(rs)