读书人

Fields.Append不明白解决方案

发布时间: 2012-03-03 15:33:02 作者: rapoo

Fields.Append不明白
Private Sub Loadcontrol(lPage As Long)

Dim adoPrimaryRS As ADODB.Recordset

Dim lPageCount As Long

Dim nPageSize As Integer

Dim lCount As Long



'每页显示的纪录

nPageSize = 30

Set adoPrimaryRS = New ADODB.Recordset

adoPrimaryRS.Open "select 姓名,密码,经验值 from ask ", conn, adOpenStatic, adLockOptimistic



adoPrimaryRS.PageSize = nPageSize

'页数

lPageCount = adoPrimaryRS.PageCount

If lCurrentPage > lPageCount Then

lCurrentPage = lPageCount

End If



adoPrimaryRS.AbsolutePage = lCurrentPage

'定义另一个记录集

Dim objrs As New ADODB.Recordset

'添加字段名称

For lCount = 0 To adoPrimaryRS.Fields.Count - 1

objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize

Next

'打开记录集

objrs.Open

'将指定记录数循环添加到objrs中


For lCount = 1 To nPageSize
If adoPrimaryRS.EOF Or adoPrimaryRS.BOF Then
Exit For
Else
objrs.AddNew

objrs!姓名 = adoPrimaryRS!姓名

objrs!密码 = adoPrimaryRS!密码
objrs!经验值 = adoPrimaryRS!经验值
adoPrimaryRS.MoveNext
End If
Next

'绑定

Set DataGrid1.DataSource = objrs



'在文本框显示页数

txtPage = lPage & "/ " & adoPrimaryRS.PageCount

End Sub

以下这段代码是什么意思,
objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize
为什么”objrs!经验值 = adoPrimaryRS!经验值“会报错呢,说是不能追加纪录为NULL,而且在sql语句中“select 姓名 as 'name '”的时候也出错,不知道是是为什么,请大伙多多帮忙了!

[解决办法]
就是在表中增加字段,这个说起来太多了,你可以看看msdn。或找一本关于ado方面的书看看。

读书人网 >VB

热点推荐