datagrid分页出现非空列不能更新为NULL
代码如下:Option Explicit
Dim conn As ADODB.Connection
Dim lCurrentPage As Long
Private Sub Command1_Click()
If lCurrentPage > 1 Then
lCurrentPage = lCurrentPage - 1
Call Loadcontrol(lCurrentPage)
End If
End Sub
Private Sub Command2_Click()
lCurrentPage = lCurrentPage + 1
Call Loadcontrol(lCurrentPage)
End Sub
Private Sub Form_Load()
Set conn = New ADODB.Connection
conn.CursorLocation = adUseClient
conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\12.mdb;"
lCurrentPage = 1
Call Loadcontrol(lCurrentPage)
End Sub
Private Sub Loadcontrol(lPage As Long)
Dim adoPrimaryRS As ADODB.Recordset
Dim lPageCount As Long
Dim nPageSize As Integer
Dim lCount As Long
'每页显示的纪录
nPageSize = 10
Set adoPrimaryRS = New ADODB.Recordset
adoPrimaryRS.Open "select * from Sheet1", 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 Then
Exit For
End If
objrs.AddNew
objrs!读者编号 = adoPrimaryRS!读者编号
objrs!姓名 = adoPrimaryRS!姓名
objrs!性别 = adoPrimaryRS!性别 ------数据库中此列有空值,已经设置允许为空了,还是不行
adoPrimaryRS.MoveNext
Next
'绑定
Set DataGrid1.DataSource = objrs
'在文本框显示页数
txtPage = lPage & "/" & adoPrimaryRS.PageCount
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Not conn Is Nothing Then
conn.Close
End If
Set conn = Nothing
End Sub
'文本框中输入页数,回车跳转到指定位置
Private Sub txtPage_KeyDown(KeyCode As Integer, Shift As Integer)
lCurrentPage = Val(txtPage.Text)
Call Loadcontrol(lCurrentPage)
End Sub
求高手解决