一个DataGrid中数据转换的问题!急!!有答案即结贴!!!

zifeng11 2003-09-29 08:28:29
我在DataGrid的数据编辑过程中是用了代码,用户输入代码后,DataGrid中的数据进行自动转换,但问题出来了:

我的代码如下:
Private Sub DataGrid4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If DataGrid4.Col = 5 Then
SendKeys "{left}"
SendKeys "{left}"
SendKeys "{left}"
SendKeys "{left}"
SendKeys "{left}"
Else
If DataGrid4.Col = 3 Then
If Left(LTrim(DataGrid4.Columns(3).Text), 2) = "00" Then DataGrid4.Columns(3).Text = "江苏"
If Left(LTrim(DataGrid4.Columns(3).Text), 2) = "01" Then DataGrid4.Columns(3).Text = "北京"
If Left(LTrim(DataGrid4.Columns(3).Text), 2) = "02" Then DataGrid4.Columns(3).Text = "天津"
If Left(LTrim(DataGrid4.Columns(3).Text), 2) = "03" Then DataGrid4.Columns(3).Text = "河北"
……
Print DataGrid4.Columns(3).Text '看看代码是否进行了转换,结果已转换
DataGrid4.Refresh
SendKeys "{right}"
Else
SendKeys "{right}"

End If
End If
End If
End Sub

1、为什么在窗体中打印出来的是汉字“北京”(代码为01)而非代码,而DataGrid4.Columns(3).Text 中却一直显示的是代码“01”呢?
2、只能在第二次获得再失去焦点后才能转换成汉字“北京”
本人也曾用ADODC间接获得数据并进行更新,虽然表中数据暂时更新了,但DataGrid中还是显示代码,按理说ADODC已与DataGrid绑定,是应该显示表中的数据的呀


请高手帮忙啊!先谢谢了!!!!!!!!



...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zifeng11 2003-09-30
  • 打赏
  • 举报
回复
回 : BBp319(飞),我已经用rs.Refresh 了,不好用的,用rs.update,rs.Refresh 后,表的数据暂时改变了,但datagrid中的数据仍然不改变,今天我才发现,其实datagrid中新输入的数据在表中也不是当时就改变的,也是在第二次失去焦点时表中的数据才能改变。
不知道是否有有效的办法。今天我调试到的双击回车键才能改变datagrid中的值。
实在做不到只能用上面另两位说的试试了

yijiansong 2003-09-30
  • 打赏
  • 举报
回复
使用MSflexgrid,和VSflexgrid,像VSflexgrid 对用户编辑很方便。
BBp319 2003-09-30
  • 打赏
  • 举报
回复
如果你用了ADO绑定就不应该写DataGrid4.Refresh,应该是rs.Refresh,(rs是ADO对象,指定数据库).更新了数据库就更新了DataGrid
planetike 2003-09-30
  • 打赏
  • 举报
回复
其实你安全可以使用MSflexgrid,和VSflexgrid,像VSflexgrid 对用户编辑很方便。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧