回 帖 发 新 帖 刷新版面

主题:弱问:如何通过选中dbcombo的内容改变对应text控件内容?

data1,dbcombo1,text1都已经设置了相应的datafield,boundcolumn,listfield.
假设在dbcombo1的下拉菜单中选择了“材料”,如何让text1显示为该材料对应的“价格”?
因为没有学过数据库,所以在此请教。
谢谢!

回复列表 (共16个回复)

沙发

dbcombo1.text将是你的选择。
使用它查询
把结果赋给text1

板凳

我就是不会查询。。。汗一个

3 楼

数据库的路径、名称
标的名称
字段的名称

把以上的东西提供下

4 楼

数据库:D:\钢管.mdb
字段只有两个:材料名称,价格
dbcombo1显示的都是名称,希望在text1中显示价格~
这样我就可以把data1设置成不可见,画面就好看多了。

5 楼

data1又是个啥东西?

6 楼

还有,难道你直接把字段放在数据库里,而不用表吗?

7 楼

再有,字段为什么不设置“材料ID”?

8 楼

很谢谢你的耐心,我是初学者。

数据库里有一个表:钢管价格
字段有两个:材料名称,价格

我再说详细一点吧:
一个data1,已经设置了databaseName和recordsource
一个dbcombo1,已经设置了boundcolumn,datafield,datasource和listfield
一个text1,已经设置了datafield和datasource。

9 楼

假设,数据库的地址是:“D:\钢管.mdb”,表的名字是:“产品”,表里有三个字段,分别是:“产品ID”、“产品名称”、“单价”。
在窗体里有一个combo1,有一个text1(Text1的MultiLine属性设置为 True)。别的什么都不要。
工程-引用-微软dao3.6对象库,选中,然后确定。
使用以下代码,在运行开始,把表里的“产品名称”添加到combo1里备选。
在combo1选择后,在text1里,列出单价。如果有同名产品,分行列出。

Dim Rs As Recordset
Private Sub Combo1_Click()
    Set db = OpenDatabase( "D:\钢管.mdb")
    Set Rs = db.OpenRecordset("select 单价 from 产品 where 产品名称='" & Combo1.Text & "'")
    Do
        Text1 = Text1 & Rs.Fields(0).Value & vbcrlf
        Rs.MoveNext
    Loop Until Rs.EOF
    Set Rs = Nothing
End Sub

Private Sub Form_Load()
    Text1 = ""
    Set db = OpenDatabase( "D:\钢管.mdb")
    Set Rs = db.OpenRecordset("select 产品名称 from 产品 where 产品名称 <> ''")
    Do
        Combo1.AddItem Rs.Fields(0).Value
        Rs.MoveNext
    Loop Until Rs.EOF
    Combo1.Text = Combo1.List(0)
    Set Rs = Nothing
    Set db = Nothing
End Sub

10 楼

恩,谢谢楼上的程序,我大概看明白了,可能要多看看书。
表里面没有材料id~请问这个是必须的吗?材料名称没有相同的。

还有,dbcombo并没有additem这个事件啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册