Dim cn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset '原始記錄集
Dim rs2 As New ADODB.Recordset '每個頁面的記錄集
Dim intPage As Integer '當前頁數
Private Sub rsPage(ByRef rsFirst As Recordset, ByVal intPageNumber As Integer)
Dim i As Integer, j As Integer
For i = 0 To rsFirst.Fields.Count - 1 '創建新表rs2,加入相關欄位
rs2.Fields.Append rsFirst.Fields(i).Name, rsFirst.Fields(i).Type, rsFirst.Fields(i).DefinedSize, rsFirst.Fields(i).Attributes
Next i
rs2.Open
rsFirst.AbsolutePage = intPageNumber
For i = 1 To rsFirst.PageSize '把相應頁的資料復制到新表rs2中
rs2.AddNew
For j = 0 To rsFirst.Fields.Count - 1
rs2.Fields(j) = rsFirst.Fields(j)
Next j
rs2.Update
rsFirst.MoveNext
If rsFirst.EOF Then Exit For '判斷是否到結尾,因為最后一面,可能不是整個大小
Next i
Set hfg.DataSource = rs2
rs2.Close
End Sub
Private Sub Command1_Click()
If (Text1.Text) > 0 Then '如果用戶指定了編碼
cn.CommandType = adCmdText '定義的記錄源
cn.RecordSource = "select * from 學生 where 學號='" & Text1.Text & "'"
cn.Refresh '使所設定的屬性生效
End If
End Sub
Private Sub Form_Load()
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\cxj_joya\VB\database12.mdb"
rs1.Open "select * from 學生", cn, adOpenKeyset, adLockOptimistic, adCmdText
intPage = 0
rs1.PageSize = 4 '設定記錄頁大小和當前記錄頁的初始值
''Set hfg.DataSource = cn '設定datagrid 控制元件資料源為ADO資料控制元件的結果集
End Sub
uj5u.com熱心網友回復:
哪里出錯了?uj5u.com熱心網友回復:
我的目的是從文本框輸入要查找的文本,然后在datagrid中依查找順序向下滾動顯示。uj5u.com熱心網友回復:
Private Sub Cmdsearch_Click() '查找
If (Text1.Text) > 0 Then '如果用戶指定了編碼
Adodc1.CommandType = adCmdText '定義的記錄源
Adodc1.RecordSource = "select * from 學生 where 學號='" & Text1.Text & "'"
Adodc1.Refresh '使所設定的屬性生效
End If
End Sub
Private Sub initgrid() '初始化dtgcond控制元件
With dtgcond
.Columns(0).Caption = "學號" '設定列標題
.Columns(1).Caption = "姓名"
End With
End Sub
Private Sub Form_Load()
Set dtgcond.DataSource = Adodc1 '設定datagrid 控制元件資料源為ADO資料控制元件的結果集
Call initgrid
Adodc1.Visible = False
End Sub
uj5u.com熱心網友回復:
每次只能查找顯示一個,當查找第二個文本時,前一個查找記錄被覆寫。幫忙看下,謝謝。uj5u.com熱心網友回復:
你到底是查詢還是查找?查詢是全部顯示的只有符合條件的記錄,必定覆寫上次結果。
查找是在顯示中定位符合條件的記錄,始終不重繪/覆寫資料。
Private Sub Cmdsearch_Click() '查找
Dim rs As adodb.Recordset
If LenB(Text1.Text) > 0 Then
Set rs = Adodc1.Recordset.Clone()
'這是從當前的下一條繼續查找,'
rs.Find "學號 = '" & Text1.Text & "'", 1, adSearchForward, dtgcond.Bookmark
'從頭查找用下面這句。'
'rs.Find "學號 = '" & Text1.Text & "'", 0, adSearchForward, adBookmarkFirst
If rs.EOF Then
MsgBox "沒有找到!", vbInformation
Else
dtgcond.Bookmark = rs.Bookmark
End If
End If
End Sub
uj5u.com熱心網友回復:
不好意思,是我沒說明白,是查找。已經解決了。剛開始學VB.控制元件與資料庫應用很多沒弄明白。多謝指教!uj5u.com熱心網友回復:
用你給的陳述句試了下,明明ACCESS中中有這個資料,但運行后說沒有找到?能幫忙分析下嗎?再不,qq聊?uj5u.com熱心網友回復:
在表格中看到這條記錄沒有?查找是在現有記錄中定位。
uj5u.com熱心網友回復:
表格中有,但查找不出來。uj5u.com熱心網友回復:
學號欄位型別是字符還是數字?注意條件寫法。字符欄位值中有沒有空格?
Text1有沒有空格?
用從頭查找的陳述句試試。
uj5u.com熱心網友回復:
rs.Find "學號 = '" & Text1.Text & "'", 0, adSearchForward, adBookmarkFirst學號欄位型別是字符,上面這句運行出問題。
uj5u.com熱心網友回復:
Debug.Print "學號 = '" & Text1.Text & "'"
什么結果。
把這個條件復制到Access的查詢中作為條件執行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/63950.html
標籤:VB基礎類
上一篇:VSFlexGrid控制元件,其中某個單元格內容向左偏移
下一篇:vba回圈賦值
