VB6中的DATACOMBO问题,怎么样才能读取一个值但返回另一个值?
我用ADODC读取了一个表的ID和NAME两个值我想在DATACOMBO中只显示NAME值但选择后只需要取NAME对应的ID值,而不要NAME值例如读取了:IDNAME1...
我用ADODC读取了一个表的ID和NAME两个值
我想在DATACOMBO中只显示NAME值
但选择后只需要取NAME对应的ID值,而不要NAME值
例如
读取了:
ID NAME
1 ABC
2 DEF
3 GHI
我的DATACOMBO显示:
ABC
DEF
GHI
在选择ABC之后只需要返回那个1而不要ABC
或者在选择DEF之后只需要2而不要DEF
怎么实现?
请告诉我具体的方法,什么代码?谢谢! 展开
我想在DATACOMBO中只显示NAME值
但选择后只需要取NAME对应的ID值,而不要NAME值
例如
读取了:
ID NAME
1 ABC
2 DEF
3 GHI
我的DATACOMBO显示:
ABC
DEF
GHI
在选择ABC之后只需要返回那个1而不要ABC
或者在选择DEF之后只需要2而不要DEF
怎么实现?
请告诉我具体的方法,什么代码?谢谢! 展开
2个回答
展开全部
使用数据绑定控件DataCombo和DataList
徐晓峰
在Visual Basic 6.0中有一组数据绑定控件,可以用于快速方便地建立数据编辑的界面。我们介绍一下DataCombo和DataList这两个数据绑定控件。这两个控件与标准的ComboBox和ListBox的外表、行为都非常相似,且这两个控件彼此也很相似。它们的区别是:DataCombo中可以选择和输入数据,而DataList只能用于数据的选择。由于两者的相似性,我们在下面的例子中以DataCombo为主。
在一个典型的应用中,我们经常需要使用对某一对象的编号。例如,VB6.0提供的Biblio数据库在一个叫做“Publishers”的表中存放着各出版公司的名称。这个表有很多字段,包括地址、城市、邮码、电话等,其中有两个基本字段Name和PubID字段。Name字段存放出版商的名称,而PubID字段是对每个出版商的编码。
Biblio数据库中另一个表为“Titles”,包含的信息有标题、出版年份、国际标准书号ISBN等。在这些字段中有一个字段的名称就是“PubID”。这个字段的名称与Publishers表中的相应字段的名称相同,因为这个字段代表了一本出版物的出版商。
这是在数据库开发中常用的一个对对象进行编码的方法,但是由此也带来了一个问题:用户在数据库应用程序中输入和编辑数据时,必须用某种方法输入标识出版商的数字编号。DataCombo和DataList控件就可以轻松地解决这个问题。
在这个应用中,我们使用了一个DataCombo控件dbcPublisher。我们希望的结果是:在dbcPublisher中看到的是所有出版商的名字,然后可以在这个控件中选择一个出版商,而这个控件可以自动将这个出版商的编码PubID(不是显示的名字)输入到Titles表的PubID字段中。这儿涉及了两个结果集,一个是出版商的编码和名字rsPublisher,另一个是和Titles相对应的结果集rsTi�tles。样本代码如下:
Dim rsPublisher As NewADODB.Recordset
Dim rsTitles As New ADODB.Recordset
Dim sSQL As String
sSQL=〃Select PubID,Name from Publishers〃
rsPublisher.Open sSQL,cn,adOpenStatic,adLockReadOnly
sSQL=〃Select Title,PubID,ISBN from Titles〃
rsTitles.Open sSQL,cn,adOpenStatic,adLockOptimistic
With dbcPublisher
Set.RowSource=rsPublisher
.ListField=〃Name〃
.BoundColumn=〃PubID〃
Set.DataSource=rsTitles
.DataField=〃PubID〃
EndWith
从这个例子中,我们可以看到dbcPublisher所显示的内容来自于rsPublisher的Name字段,由RowSource属性和ListField属性指定;而用户使用中如果选定了某个出版商,则自动将对应的rsPublisher的PubID字段的值去修改目的结果集,这个字段由BoundColumn属性指定;目的结果集和被修改的字段是rsTitles的PubID字段,由DataSource属性和DataField属性指定。另外还有一个属性是BoundText,它的值是BoundColumn指定的字段的值。
DataCombo和DataList控件的使用方法是很简单的,便于快速的应用开发。关于这两个控件的其他详细信息,可以参考MSDN Library中的详细说明。
徐晓峰
在Visual Basic 6.0中有一组数据绑定控件,可以用于快速方便地建立数据编辑的界面。我们介绍一下DataCombo和DataList这两个数据绑定控件。这两个控件与标准的ComboBox和ListBox的外表、行为都非常相似,且这两个控件彼此也很相似。它们的区别是:DataCombo中可以选择和输入数据,而DataList只能用于数据的选择。由于两者的相似性,我们在下面的例子中以DataCombo为主。
在一个典型的应用中,我们经常需要使用对某一对象的编号。例如,VB6.0提供的Biblio数据库在一个叫做“Publishers”的表中存放着各出版公司的名称。这个表有很多字段,包括地址、城市、邮码、电话等,其中有两个基本字段Name和PubID字段。Name字段存放出版商的名称,而PubID字段是对每个出版商的编码。
Biblio数据库中另一个表为“Titles”,包含的信息有标题、出版年份、国际标准书号ISBN等。在这些字段中有一个字段的名称就是“PubID”。这个字段的名称与Publishers表中的相应字段的名称相同,因为这个字段代表了一本出版物的出版商。
这是在数据库开发中常用的一个对对象进行编码的方法,但是由此也带来了一个问题:用户在数据库应用程序中输入和编辑数据时,必须用某种方法输入标识出版商的数字编号。DataCombo和DataList控件就可以轻松地解决这个问题。
在这个应用中,我们使用了一个DataCombo控件dbcPublisher。我们希望的结果是:在dbcPublisher中看到的是所有出版商的名字,然后可以在这个控件中选择一个出版商,而这个控件可以自动将这个出版商的编码PubID(不是显示的名字)输入到Titles表的PubID字段中。这儿涉及了两个结果集,一个是出版商的编码和名字rsPublisher,另一个是和Titles相对应的结果集rsTi�tles。样本代码如下:
Dim rsPublisher As NewADODB.Recordset
Dim rsTitles As New ADODB.Recordset
Dim sSQL As String
sSQL=〃Select PubID,Name from Publishers〃
rsPublisher.Open sSQL,cn,adOpenStatic,adLockReadOnly
sSQL=〃Select Title,PubID,ISBN from Titles〃
rsTitles.Open sSQL,cn,adOpenStatic,adLockOptimistic
With dbcPublisher
Set.RowSource=rsPublisher
.ListField=〃Name〃
.BoundColumn=〃PubID〃
Set.DataSource=rsTitles
.DataField=〃PubID〃
EndWith
从这个例子中,我们可以看到dbcPublisher所显示的内容来自于rsPublisher的Name字段,由RowSource属性和ListField属性指定;而用户使用中如果选定了某个出版商,则自动将对应的rsPublisher的PubID字段的值去修改目的结果集,这个字段由BoundColumn属性指定;目的结果集和被修改的字段是rsTitles的PubID字段,由DataSource属性和DataField属性指定。另外还有一个属性是BoundText,它的值是BoundColumn指定的字段的值。
DataCombo和DataList控件的使用方法是很简单的,便于快速的应用开发。关于这两个控件的其他详细信息,可以参考MSDN Library中的详细说明。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询