高分求代码,急!每人说的都差不多,我也知道可是不会写代码!!

bluesanke 2003-05-22 03:29:42
在查询窗口里的MSHFlexGrid中任意选取一条记录,然后单激“返回控制界面”的按钮,本窗口关闭,控制窗口打开,并且控制窗口里的记录和这条记录保持一致,各TEXT框对应相关的数据!求这段代码,希望大家帮忙,急用谢谢!!!
要求在“返回控制界面”的按钮的代码中实现
要在模块中定义全局变量,在MSHFlexGrid选取记录后,将所选记录的值赋给全局变量,当打开控制窗口时,将全局变量的值赋给控制窗口里的记录(不知道你的控制窗口是不是和MSHFlexGrid一样控件,如果是一样,则将控制窗口里的记录移动到同样的一条记录即可。)
控制窗口里我有ADO控件,可是怎样让ADO控件中的记录也移动到这条给点代码吧大哥!
告诉我代码只要代码----只要代码!!!!!

看看我写的

Private Sub Command5_Click()
If MSHFlexGrid1.RowSel Then------这句有毛病我不知道怎么定义MSHFlexGrid1的行
Unload Me
With cx_xzgl_gtzyywgwyscld
.Show
.Move 0, 0
End With
cx_xzgl_gtzyywgwyscld.Adodc1.Recordset.Bookmark = MSHFlexGrid1.RowSel
上句有毛病控制窗口里的Adodc1怎么指定和MSHFlexGrid1随便挑选的行中完全对应的数据
Else
MsgBox "请先选择要打印的记录!!!", vbOKOnly + vbExclamation, "信息提示"
End If
End Sub
...全文
33 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
PCHOMEFAY 2003-05-22
  • 打赏
  • 举报
回复
如果在MSHFlexGrid1中的主关键字是 在第一列的话 可以这样写啊
strKey为全局变量,记录所选记录的主关键字

试试 把下面的放在MSHFlexGrid1单击事件里
MSHFlexGrid1.Col = 1
strKey=MSHFlexGrid1.Text

qingming81 2003-05-22
  • 打赏
  • 举报
回复
我也打错了,根本就不存在MSHFlexGrid1.Cols(0).text的用法!
qingming81 2003-05-22
  • 打赏
  • 举报
回复
楼主已经忙过头了,再试relaxzone(清风)的strKey=MSHFlexGrid1.Cols(0).text那就更麻烦了,根本就存在MSHFlexGrid1.Cols(0).text的用法。
qingming81 2003-05-22
  • 打赏
  • 举报
回复
上面你的代码中RowSel并不是选定的行,而是表示或设置选列记录的开始列和结束列范围值,并不是你需要的选定行的行号或记录
relaxzone 2003-05-22
  • 打赏
  • 举报
回复
试试strKey=MSHFlexGrid1.Cols(0).text
不好意思,我用的机子没装VB
qingming81 2003-05-22
  • 打赏
  • 举报
回复
我并不知道你的控制窗口中的TEXT控件是怎么安排的,所以也没有办法再给你写得更具体了!
qingming81 2003-05-22
  • 打赏
  • 举报
回复
我只是示例,既然都已经显示得出来结果了,那么你难道不知道取这个值再赋予控制窗口中的TEXT控件吗?
qingming81 2003-05-22
  • 打赏
  • 举报
回复
'假如主键值是第一列的值,
Private Sub MSHFlexGrid1_Click()
strKey=MSHFlexGrid1.TextMatrix(1, 1)
End Sub

'然后在控制窗口Form_Load时写
ado.Recordset.move (strkey-1) '就可以了。注意:这里假设主键是从1起的连续号,move方法后指的是记录绝对位置,是从0开始的,因此要减1。(注意:绝对位置是和排序有关的)。
bluesanke 2003-05-22
  • 打赏
  • 举报
回复
'MsgBox MSHFlexGrid1.TextMatrix(i, j)运行到这里的时候它把一行中的数据都显示出来了,我要的不是这种效果,而是要控制窗口里的adodc把记录指针也指到这条上,不用都显示一边
qingming81 2003-05-22
  • 打赏
  • 举报
回复
然后在控制窗口的Form_load中加如下代码
dim j as integer
for j=1 to (N-1) '记住,这个值是一开始就可以知道的,N是记录源的列数
Text1(j)=textvalue(j)
next j
qingming81 2003-05-22
  • 打赏
  • 举报
回复
在那一张帖中我已经写了示例的代码,你没有明白吗?下面直接写一个再看:

'先在模块中定义全局变量:
option explicit
dim TextValue()

Private Sub MSHFlexGrid1_Click()
Dim i As Integer
Dim j As Integer
Dim N As Integer
i = MSHFlexGrid1.Row
N = MSHFlexGrid1.Cols
redim preserve textvalue(1 to (N-1))
For j = 1 To N - 1
'MsgBox MSHFlexGrid1.TextMatrix(i, j)
textvalue(j)=MSHFlexGrid1.TextMatrix(i, j)
Next j
End Sub

bluesanke 2003-05-22
  • 打赏
  • 举报
回复
将MSHFlexGrid中显示的表的主关键字赋给一全局变量strKey
这个怎么用代码实现呢?!
relaxzone 2003-05-22
  • 打赏
  • 举报
回复
将MSHFlexGrid中显示的表的主关键字赋给一全局变量strKey
然后,在控制窗口中的Form_Load()中加入
adodc1.datasource="select * from table_name where table_key = '" & strKey & "'"
adcdc1.refresh
试一下
bluesanke 2003-05-22
  • 打赏
  • 举报
回复
记录源是TABLE大哥上面的也没解决
sickleliu 2003-05-22
  • 打赏
  • 举报
回复
你的Adodc1的记录源是什么类型的?是table还是text?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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