当一个recordset被open 了以后,如果我不使用绑定的方式,要将数据循环写到grid里,那么:Dim Rs As New ADODB.RecordsetRs.Open "select a ,b,c from aaa ",connFor i = 0 To Rs.RecordCount - 1
......
Next i这样我可以取出里面的数据什么的,
可是我怎么取出各个列的列名啊,就是说,我怎么得到这个a,b,c 啊?
......
Next i这样我可以取出里面的数据什么的,
可是我怎么取出各个列的列名啊,就是说,我怎么得到这个a,b,c 啊?
debug.print aa.name
next
免费的学习交流网站,欢迎大家访问!
http://www.j2soft.cn/
grid单元格内容=rs.fields("a").name
grid单元格内容=rs.fields("b").name
grid单元格内容=rs.fields("c").name
grid单元格内容=rs.fields("a").name
grid单元格内容=rs.fields("b").name
grid单元格内容=rs.fields("c").name
=========================================
???????????????????????????????
爱谁谁。。
fieldA = rs.fields("a").value
end function
select a,b,c from table
如果改成 select b,a,c from table 那么rs.fields(1).value就不对,而rs.fields("a").value就不受影响了。
m_pADORecordset.Requery
Dim i As Integer
Dim f As ADODB.Field
For i = 0 To m_pADORecordset.Fields.Count - 1
Set f = m_pADORecordset.Fields.Item(i)
If i <> m_pADORecordset.Fields.Count - 1 Then
strFields = strFields & f.Name & ","
Else
strFields = strFields & f.Name
End If
End If
Next i
'以上为获取列名,然后再重新打开If m_pADORecordset.State = 1 Then m_pADORecordset.Close
m_pADORecordset.Open "Select " & strFields & " from " & "表", Con, adOpenForwardOnly, adLockOptimistic
m_pADORecordset.Requery建议用用MSHFlexGrid.Recordset = m_pADORecordset的方法打开Recordset里面的东西
fieldA = rs.fields("a").value
end function
select a,b,c from table
如果改成 select b,a,c from table 那么rs.fields(1).value就不对,而rs.fields("a").value就不受影响了。
========================================
楼主要的是列名而不是值....
再说,用rs.fields("a").的方法,自己都已经把字段名写出来了,还要再用多一个步骤来得到列名吗?????
fieldA = rs.fields("a").value
end function
select a,b,c from table
如果改成 select b,a,c from table 那么rs.fields(1).value就不对,而rs.fields("a").value就不受影响了。
========================================
楼主要的是列名而不是值....
再说,用rs.fields("a").的方法,自己都已经把字段名写出来了,还要再用多一个步骤来得到列名吗?????
============================================
呵呵,当然有必要了,FieldA只是一个虑拟的东西,在窗体代码里引用,万一数据库字段名变了,各个窗体中的代码也不用变啊,虽然VB不是面向对象的语言,但是我们做程序时还是要向面向对象靠齐。
fieldA = rs.fields("a").value
end function
select a,b,c from table
如果改成 select b,a,c from table 那么rs.fields(1).value就不对,而rs.fields("a").value就不受影响了。
========================================
楼主要的是列名而不是值....
再说,用rs.fields("a").的方法,自己都已经把字段名写出来了,还要再用多一个步骤来得到列名吗?????
============================================
呵呵,当然有必要了,FieldA只是一个虑拟的东西,在窗体代码里引用,万一数据库字段名变了,各个窗体中的代码也不用变啊,虽然VB不是面向对象的语言,但是我们做程序时还是要向面向对象靠齐。
=================================================如果连数据库里的字段名都变了,例如“a”字段名字变成了“d”,用select a,b,c from table还能正常查得到table的数据吗???还能用rs.fields("a").的方法得到原来“a”字段的数据吗??
以在listview控件中加columnheader为例dim i as integer
For i = 0 To recEle.Fields.Count - 1
lvwType.ColumnHeaders.Add , , recEle.Fields(i).Name
Next irecEle.Fields.Count可以取出有多少个列
recEle.Fields(i).Name可以取出每个列名我说明白了吗?
-------------------
呵呵,兄弟还要努力啊,数据连接一般是写在类里,或是COM里,只需要改一处地方就行了,如果你有十个窗体引用了该类,这十个窗体就不用改了,只要修改一下类就行了,改得越少代码的可靠性才性高