Set rd = New ADODB.Recordset
rd.Open ............................ '省略
Dim fldLoop As ADODB.Field
For Each fldLoop In rd.Fields
Debug.Print " " & fldLoop.Name & " = " & fldLoop.Value
If fldLoop.Name = "a" Then
fldLoop.Value = "b"
End If
Next fldLoop能给我解释一下这个代码吗?后面那个for循环是什么意思啊?
rd.Open ............................ '省略
Dim fldLoop As ADODB.Field
For Each fldLoop In rd.Fields
Debug.Print " " & fldLoop.Name & " = " & fldLoop.Value
If fldLoop.Name = "a" Then
fldLoop.Value = "b"
End If
Next fldLoop能给我解释一下这个代码吗?后面那个for循环是什么意思啊?
枚举所有字段
'-------------------
也可以
For I =0 to rd.Fields.count-1
Debug.Print " " & rd.Fields(i).name & " = " & rd.Fields(i).value
fldLoop.Value 是字段的值如楼上所说,读取集合的内容可以用For each循环,也可以用索引循环
还有Debug.Print后有几个空格,是固定格式吗?还是为了好看?
fldLoop.Value = "b"
End If
是修改数据
------------------------
Debug.Print " " & fldLoop.Name & " = " & fldLoop.Value
是为了避免fldLoop.Name和fldLoop.Valuezai为NULL值
请问这句如何避免fldLoop.Name和fldLoop.Valuezai为NULL值啊?加上了这句,当查询的记录中有null值时,还是会出错,情况如下:
实时错误‘3021’:
BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。何解??
rd.Open ............................ '省略
Dim fldLoop As ADODB.Field
For Each fldLoop In rd.Fields
'如果字段在記錄集的字段列中,就循環
Debug.Print " " & fldLoop.Name & " = " & fldLoop.Value
'上面這一行的意思是用即時窗品輸出 fldLoop.Name 的名稱 加上 "="號,加上它的值
If fldLoop.Name = "a" Then
fldLoop.Value = "b"
End If
Next fldLoop