Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 在这个事件中定位另一个AODDC的记录集的位置 推荐不用Adodc控件
不太懂你的意思,是否想这样:窗体上放置两个DataGrid控件、两个Adodc控件、一个CommandButton控件,初始时候DataGrid1显示mTable1,当按下CommandButton的时候,把Adodc1的Recordset赋值Adodc2的Recordset,并显示在DataGrid2上。Private Sub Command1_Click() Set Adodc2.Recordset = Adodc1.Recordset Set DataGrid2.DataSource = Adodc2
End SubPrivate Sub Form_Load() Adodc1.Visible = False Adodc2.Visible = False
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePositionEnd Sub部是说对象变量With块没设置 可能是还没有加载Adodc2控件的原因吧 但我在Form_load里面已经设置了代码了 Private Sub Form_Load() Adodc1.RecordSource = "select 部门编号 as 编号,部门名称 as 部门 from 部门信息" Adodc1.Refresh Adodc1.ConnectionString = Conn Adodc1.CommandType = adCmdText Adodc2.ConnectionString = Conn Adodc2.CommandType = adCmdText Adodc2.RecordSource = "select * from 部门信息" Adodc2.RefreshEnd Sub
把: Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePosition 改成:If Not Adodc2.Recordset Is Nothing Then Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePosition
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
If Not Adodc2.Recordset Is Nothing Then Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePositionEnd Sub为什么我在datagrid1表格里要点两下才会改变Adodc2的指针?
Adodc2.RecordSource = "Select mFieldB,mFieldC,mFieldD,mFieldE From mTable" Set DataGrid2.DataSource = Adodc2
End SubPrivate Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) If Not Adodc2.Recordset Is Nothing Then Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePosition
在这个事件中定位另一个AODDC的记录集的位置
推荐不用Adodc控件
Set DataGrid2.DataSource = Adodc2
End SubPrivate Sub Form_Load() Adodc1.Visible = False
Adodc2.Visible = False
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
Adodc1.CursorLocation = adUseClient
Adodc1.LockType = adLockOptimistic
Adodc1.CursorType = adOpenKeyset Adodc1.RecordSource = "Select * From mTable1"
Set DataGrid1.DataSource = Adodc1
End Sub
Adodc1_MoveComplete好像先于Form_Load事件吧?这样也不行
就是在MoveComplete事件中写代码同步啊
2、可以在MoveComplete中做些判断标志,决定同步与否,在开始装载窗体的时候是要会引发事件的
现在由于 我的DataGrid绑定的是Adodc1控件 ,
所以改变DataGrid的行只能改变Adodc1的记录。
我是想怎么让Adodc2跟Adodc1同步,谢谢
Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePositionEnd Sub部是说对象变量With块没设置
可能是还没有加载Adodc2控件的原因吧
但我在Form_load里面已经设置了代码了
Private Sub Form_Load()
Adodc1.RecordSource = "select 部门编号 as 编号,部门名称 as 部门 from 部门信息"
Adodc1.Refresh
Adodc1.ConnectionString = Conn
Adodc1.CommandType = adCmdText Adodc2.ConnectionString = Conn
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select * from 部门信息"
Adodc2.RefreshEnd Sub
If Not Adodc2.Recordset Is Nothing Then Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePositionEnd Sub为什么我在datagrid1表格里要点两下才会改变Adodc2的指针?
为什么我在datagrid1表格里要点两下才会改变Adodc2的指针?
*/
不太理解楼主的意图?
我的datagrid表是绑定到Adodc1的,现在只是Adodc1的指针改变了,怎么让Adodc2的指针同时改变指向同一条记录??
Adodc2.Visible = False
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
Adodc1.CursorLocation = adUseClient
Adodc1.LockType = adLockOptimistic
Adodc1.CursorType = adOpenKeyset Adodc1.RecordSource = "Select mFieldA From mTable"
Set DataGrid1.DataSource = Adodc1
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
Adodc2.CursorLocation = adUseClient
Adodc2.LockType = adLockOptimistic
Adodc2.CursorType = adOpenKeyset
Adodc2.RecordSource = "Select mFieldB,mFieldC,mFieldD,mFieldE From mTable"
Set DataGrid2.DataSource = Adodc2
End SubPrivate Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) If Not Adodc2.Recordset Is Nothing Then Adodc2.Recordset.AbsolutePosition = Adodc1.Recordset.AbsolutePosition
End Sub