标题:如何绑定DataGrid表中的数据到窗体的控件中去?
只看楼主
紫竹
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-3-30
 问题点数:0 回复次数:9 
如何绑定DataGrid表中的数据到窗体的控件中去?

我做了一个窗体,如下图,我想点击列表中的某一行时,某一行的信息则自动返回到窗体的控件中去,但是不知道为什么,我无论点击列表中的哪一行,它只会返回第一行的信息...如下图所示....下面附上我的代码,请各位看看我的代码是不是出什么问题了...帮我改改...



Private Sub Form_Load()
rtn = SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3) '运用API函数SetWindowPos,来实现使窗体置前的功能
Dim strSql As String
Dim rs As Recordset

strSql = "select * from tb_gys"
Set rs = GetRecordSet(strSql)
Set DataGrid1.DataSource = rs
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2

Text1(0).Enabled = False
Text1(1).Enabled = False
Text1(2).Enabled = False
Text1(3).Enabled = False
Text1(4).Enabled = False
Text1(5).Enabled = False

End Sub

'*** 自定义数据信息反绑定的过程 ***
Private Sub JionBack()
On Error Resume Next '执行错误处理
Dim SLen As Integer
Dim strSql As String
Dim rs As Recordset
strSql = "select * from tb_gys"
Set rs = GetRecordSet(strSql)
If rs.RecordCount > 0 Then
StrNum = Val(rs.Fields("gys_ID"))
SLen = Len(Trim(StrNum))
Select Case SLen '位数不足者补0
Case 1
StrTemp = "00000"
Case 2
StrTemp = "0000"
Case 3
StrTemp = "000"
Case 4
StrTemp = "00"
Case 5
StrTemp = "0"
Case 6
StrTemp = ""
End Select
'将数据信息反绑定到文本框当中
Text1(0).Text = rs(1)
Text1(1).Text = rs(2)
Text1(2).Text = rs(3)
Text1(3).Text = rs(4)
Text1(4).Text = rs(5)
Text1(5).Text = rs(6)
End If
rs.Close
Set rs = Nothing
End Sub

[此贴子已经被作者于2007-8-28 11:35:11编辑过]

搜索更多相关主题的帖子: 控件中 表中 窗体 绑定 DataGrid 
2007-08-28 11:31
紫竹
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-3-30
得分:0 

急啊,,有人会吧,,教教我吧!

2007-08-28 14:56
紫竹
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-3-30
得分:0 
我想要的是把我点中datagrid控件的哪一行,就把该行的记录显示在窗体的控件中...为什么它永远只会显示第一行啊?
2007-08-31 16:46
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
设置Text的DataSource和DataField

我的msn: myfend@
2007-08-31 16:48
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 

strSql = "select * from tb_gys"
Set rs = GetRecordSet(strSql)
在紅色的部分加一個條件。。。當你選擇哪 一行。。就得到當前行的供應商編號。。。
設置strsql ="select * from tb_gys where 供應商編號='等於當前行供就商編號'"
再Set rs = GetRecordSet(strSql)
If rs.RecordCount > 0 Then
StrNum = Val(rs.Fields("gys_ID"))
SLen = Len(Trim(StrNum))
Select Case SLen '位数不足者补0
Case 1
StrTemp = "00000"
Case 2
StrTemp = "0000"
Case 3
StrTemp = "000"
Case 4
StrTemp = "00"
Case 5
StrTemp = "0"
Case 6
StrTemp = ""
End Select
'将数据信息反绑定到文本框当中
Text1(0).Text = rs(1)
Text1(1).Text = rs(2)
Text1(2).Text = rs(3)
Text1(3).Text = rs(4)
Text1(4).Text = rs(5)
Text1(5).Text = rs(6)
End If
rs.Close
Set rs = Nothing
End Sub
這樣就可以了。

[此贴子已经被作者于2007-8-31 17:03:28编辑过]


2007-08-31 17:02
紫竹
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-3-30
得分:0 
但是每一行的供应商编号都不一样啊,
設置strsql ="select * from tb_gys where 供應商編號='等於當前行供就商編號'"
那我设strSql="select * from tb_gys where gys_IDs='当前行供应商编号'"
但我怎么会知道当前行供应商编号如何写啊?我事前是不知道当前行供应商编号是多少的啊?我试过设strSql="select * from tb_gys where gys_IDs=datagrid1.row"定位当前行,但是失败了,语法不允许这样写...
2007-09-01 12:00
trg
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-5-11
得分:0 

用另一中控件glodgrid 别用datagrid

2007-09-01 20:07
紫竹
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-3-30
得分:0 
但是glodgrid 这个控件更加不会用啊......
2007-09-05 08:55
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
得分:0 
datagrid1.row 返回的是当前行。。。不是当前行文本。。。

2007-09-05 10:21
紫竹
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-3-30
得分:0 

我试了用
'将数据信息反绑定到文本框当中
Text1(0).Text = datagrid1.text
Text1(1).Text = datagrid1.text
Text1(2).Text = datagrid1.text
Text1(3).Text = datagrid1.text
Text1(4).Text = datagrid1.text
Text1(5).Text = datagrid1.text
这样,每一个控件全部都只是返回我选中的那一个内容,不会返回同一行的其它内容.

2007-09-05 15:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-165953-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.360288 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved