我程序里设计了两个窗体,其中一个是纪录展示窗体f1,另一个是添加纪录的窗体f2,有没有办法在我添加完j纪录,关闭f2后,怎样实现f1中的dataggrid控件自动更新,显示出我刚刚添加的纪录呢?下面的程序是f1的,f2的程序很简单,最简单的那种向数据库中添加纪录的程序。Option ExplicitDim conn As ADODB.ConnectionDim lCurrentPage As LongDim adoPrimaryRS As ADODB.Recordset Dim lPageCount As Long Dim nPageSize As IntegerDim lCount As Long
Private Sub C1_Click()
lCurrentPage = C1.Text
Call Loadcontrol(lCurrentPage)
End SubPrivate Sub cmdNext_Click() lCurrentPage = lCurrentPage + 1 Call Loadcontrol(lCurrentPage)End Sub
Private Sub cmdPrevious_Click() If lCurrentPage > 1 Then lCurrentPage = lCurrentPage - 1 Call Loadcontrol(lCurrentPage)End IfEnd Sub Private Sub first_Click()
lCurrentPage = 1
Call Loadcontrol(lCurrentPage)
End SubPrivate Sub Form_Load()
Dim i As Integer
Set conn = New ADODB.Connectionconn.CursorLocation = adUseClient conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\net1.mdb;" lCurrentPage = 1
nPageSize = 30 Set adoPrimaryRS = New ADODB.Recordset adoPrimaryRS.Open "select * from ask", conn, 1, 1
adoPrimaryRS.PageSize = nPageSize '页数 lPageCount = adoPrimaryRS.PageCount If lCurrentPage > lPageCount Then lCurrentPage = lPageCount End IfFor i = 1 To lPageCount
C1.AddItem i
Next
Call Loadcontrol(lCurrentPage) End SubPrivate Sub Loadcontrol(lPage As Long)
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!密码 & "" adoPrimaryRS.MoveNext
End If
Next '绑定 Set DataGrid1.DataSource = objrs '在文本框显示页数 txtPage = lPage & "/" & adoPrimaryRS.PageCountEnd Sub Private Sub Form_Unload(Cancel As Integer)If Not conn Is Nothing Then conn.CloseEnd If Set conn = NothingEnd SubPrivate Sub last_Click()
lCurrentPage = adoPrimaryRS.PageCount
Call Loadcontrol(lCurrentPage)
End SubPrivate Sub txtPage_KeyDown(KeyCode As Integer, Shift As Integer) lCurrentPage = Val(txtPage.Text) Call Loadcontrol(lCurrentPage)End Sub
Private Sub C1_Click()
lCurrentPage = C1.Text
Call Loadcontrol(lCurrentPage)
End SubPrivate Sub cmdNext_Click() lCurrentPage = lCurrentPage + 1 Call Loadcontrol(lCurrentPage)End Sub
Private Sub cmdPrevious_Click() If lCurrentPage > 1 Then lCurrentPage = lCurrentPage - 1 Call Loadcontrol(lCurrentPage)End IfEnd Sub Private Sub first_Click()
lCurrentPage = 1
Call Loadcontrol(lCurrentPage)
End SubPrivate Sub Form_Load()
Dim i As Integer
Set conn = New ADODB.Connectionconn.CursorLocation = adUseClient conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\net1.mdb;" lCurrentPage = 1
nPageSize = 30 Set adoPrimaryRS = New ADODB.Recordset adoPrimaryRS.Open "select * from ask", conn, 1, 1
adoPrimaryRS.PageSize = nPageSize '页数 lPageCount = adoPrimaryRS.PageCount If lCurrentPage > lPageCount Then lCurrentPage = lPageCount End IfFor i = 1 To lPageCount
C1.AddItem i
Next
Call Loadcontrol(lCurrentPage) End SubPrivate Sub Loadcontrol(lPage As Long)
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!密码 & "" adoPrimaryRS.MoveNext
End If
Next '绑定 Set DataGrid1.DataSource = objrs '在文本框显示页数 txtPage = lPage & "/" & adoPrimaryRS.PageCountEnd Sub Private Sub Form_Unload(Cancel As Integer)If Not conn Is Nothing Then conn.CloseEnd If Set conn = NothingEnd SubPrivate Sub last_Click()
lCurrentPage = adoPrimaryRS.PageCount
Call Loadcontrol(lCurrentPage)
End SubPrivate Sub txtPage_KeyDown(KeyCode As Integer, Shift As Integer) lCurrentPage = Val(txtPage.Text) Call Loadcontrol(lCurrentPage)End Sub
adoPrimaryRS.Update
adoPrimaryRS.Update
adoPrimaryRS.MoveNext
Exit For
Else
objrs.AddNew objrs!姓名 = adoPrimaryRS!姓名 objrs!密码 = adoPrimaryRS!密码 & "" adoPrimaryRS.Update
adoPrimaryRS.MoveNext
End If
这里是f2程序的内容:
Dim conn As Connection
Dim rs As Recordset
Dim sql As String
Dim db As StringPrivate Sub Command1_Click()rs.AddNew
rs!姓名 = T1.Text
rs!密码 = T2.Text
rs!经验值 = T3.Text
rs.Update
t = MsgBox("提交成功!", , "标题")
End SubPrivate Sub Form_Load()
Set conn = New Connection
Set rs = New Recordset
db = App.Path + "\net1.mdb"
sql = "select * from ask"
conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;data source=" & db & ";"
rs.Open sql, conn, 1, 3
End Sub