求助,我用sql2000+vb做了一个交费程序,用2个datagrid显示2个表:用户信息表,交费记录表。 表如下:
用户信息表 交费记录表
id name address id year cash(元) re
1 李 长春 1 2005 50 已交
2 张 长春 1 2006 0 未缴
3 钱 北京 2 2005 30 已交
2 2006 40 已交
程序应该是这样的运行的:
datagrid1
id name address
^ 1 李 长春 ----点击一次datagrid1这一行datagrid2应该出现下面 datagrid2
id year cash(元) re
1 2005 50 已交
1 2006 0 未缴
但是现在是点击 ^ 时,程序正常.
但是要是点击一次姓名(name)或者地址(address)时显示的上一个记录的信息,必须再点一次才能正确显示
datagrid1
id name address
^ 2 张 长春 ----点击一次datagrid1中的name或者address则datagrid2还显示上一次的信息 datagrid2 显示如下:
id year cash(元) re
1 2005 50 已交
1 2006 0 未缴
只有再点一次才能显示出正确数据
id year cash(元) re
2 2005 30 已交
2 2006 40 已交
那位高人帮看看到底差再那里? 感激不尽!!
程序如下:
Private Sub DataGrid1_Click()
'判断表格控件中的记录数是否为空
If Adodc1.Recordset.RecordCount < > 0 Then
'将对应记录合同编号字段的值赋给全局变量htbh
htbh = DataGrid1.Columns("0").Text
End If
Adodc2.ConnectionString = connectstring
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select id ,year,cash,re from UserData where id = '" & htbh & " '"
Adodc2.Refresh
Set DataGrid2.DataSource = Adodc2
DataGrid2.ReBind
End Sub
Adodc1对应DataGrid1
Adodc2对应DataGrid2
剩下的分再这里
http://topic.csdn.net/u/20071019/21/ad50d46a-019a-4c92-accf-a2392097fba5.html
用户信息表 交费记录表
id name address id year cash(元) re
1 李 长春 1 2005 50 已交
2 张 长春 1 2006 0 未缴
3 钱 北京 2 2005 30 已交
2 2006 40 已交
程序应该是这样的运行的:
datagrid1
id name address
^ 1 李 长春 ----点击一次datagrid1这一行datagrid2应该出现下面 datagrid2
id year cash(元) re
1 2005 50 已交
1 2006 0 未缴
但是现在是点击 ^ 时,程序正常.
但是要是点击一次姓名(name)或者地址(address)时显示的上一个记录的信息,必须再点一次才能正确显示
datagrid1
id name address
^ 2 张 长春 ----点击一次datagrid1中的name或者address则datagrid2还显示上一次的信息 datagrid2 显示如下:
id year cash(元) re
1 2005 50 已交
1 2006 0 未缴
只有再点一次才能显示出正确数据
id year cash(元) re
2 2005 30 已交
2 2006 40 已交
那位高人帮看看到底差再那里? 感激不尽!!
程序如下:
Private Sub DataGrid1_Click()
'判断表格控件中的记录数是否为空
If Adodc1.Recordset.RecordCount < > 0 Then
'将对应记录合同编号字段的值赋给全局变量htbh
htbh = DataGrid1.Columns("0").Text
End If
Adodc2.ConnectionString = connectstring
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select id ,year,cash,re from UserData where id = '" & htbh & " '"
Adodc2.Refresh
Set DataGrid2.DataSource = Adodc2
DataGrid2.ReBind
End Sub
Adodc1对应DataGrid1
Adodc2对应DataGrid2
剩下的分再这里
http://topic.csdn.net/u/20071019/21/ad50d46a-019a-4c92-accf-a2392097fba5.html
解决方案 »
- vb操作word时,如何判断某个表格在word中所占的页数?
- 有大大关注过amf(Action Message Format)吗?
- 什么表格控件 可以对关键文字着色 还有 换行 严重感谢 送够500分为止
- 怎样在vb中分配内存就象fillchar一样
- VB6,打包后在其他电脑安装不了,求救!
- 为什么不能删除纪录,请教大家,问题在哪?
- vb调用vc编写的dcom问题
- 关于使用对话框...
- 请问,我在COMMAND2中想执行COMMAND1的代码该如何做?
- 请问如何用VB或DEPHI后台监测是否有打印任务传到打印机?
- 怎么样能够做到在LISTVIEW控件里,对于显示的每一列数据进行编辑的功能?
- 关于commandstatechange具体何时调用
Adodc2.Refresh 放在DataGrid2.ReBind 下面试试
问题还是存在。to xghim
htbh = DataGrid1.Columns("0").Text
这条语句只是为了获得每一行的第一列的数字,用这个数字去找DataGrid2中的对应的数据
应该通过与datagrid1绑定的数据集来获得这个值(假设为recordset1),应该是:
htbh = recordset1.fields("id").value
因为datagrid1是和recordset1绑定的,所以记录的选择是同步的。
还有,你最好把你的代码写在recordset1的某个适当事件中,而不是现在的datagrid1的click事件。
我不是那个意思。对不起了,可能是我的语言组织有问题,令你误会了,向你道歉可是,我不知道怎么把行数取出来,要不也不会用这么笨的方法了to yuvotesyg518 多谢你的建议“你最好把你的代码写在recordset1的某个适当事件中”
程序中确实是需要点击一次datagrid1这一行datagrid2相应的数据出现下面 某个适当事件是指什么样的事件,能举一下例子吗?
如果只点击一次的话就是上一次的数据
我不知道你用的是ado的组件还是那个adodc控件,但都应该会有相应的事件的。
实在是不好意思,令你误会了,再次向你道歉to yuvotesyg518多谢你的指教 请你到这里来发个帖子,我给你分,也好结贴http://topic.csdn.net/u/20071019/21/ad50d46a-019a-4c92-accf-a2392097fba5.html