ID   产品代码产品编码产品名称  零件名称
1    0201140001BB011407.99水枪  左枪身
2    0201140002BB011407.99水枪  右枪身
3    0201140003BB011407.99水枪  透明管
4    0201140004BB011407.99水枪  左手柄
5    0201140005BB011407.99水枪  右手柄
6    0201140006BB011407.99水枪  左装饰件
7    0201140007BB011407.99水枪  右装饰件
8    0201140008BB011407.99水枪  活塞
9    0201140009BB011407.99水枪  透明管盖
10   0201140010BB011407.99水枪  水樽接头
11   0201140011BB011407.99水枪  泵筒接头
12   0201140012BB011407.99水枪  泵杆接头
此表是远程SQL表“物料基本资料”记录值是唯一对应的一个录入窗体FROM1,在数据录入中控件combobox1、text2、text3、text4
怎样在下拉COMBOBOX1中显示物料基本资料的记录集并且录入记录相对应记录。
比如:在COMBOX1中选择产品代码0201140001就会自动付值对应记录
      combox1、 text2、 text3、   text4
     0201140001BB011407.99水枪  左枪身 CN.CursorLocation = adUseClient
CN.Open "Driver={sql server};server=192.168.0.1;database=new;uid=jean;pwd=jean"
RS.Open "select 产品代码 from 物料基本资料", CN, adOpenForwardOnly, adLockReadOnly
  Combo1.Clear
  Do While Not RS.EOF
        Combo1.AddItem RS.Fields(0)
        Combo1.ItemData(Combo1.ListCount - 1) = RS.Fields(0)
      
        RS.MoveNext
  Loop
  Combo1.ListIndex = -1combo1下拉有记录
请问选择COMBO其中一条记录如何赋值到text2(产品编码)、 text3(产品名称)、text4(零件名称)想对应的记录

解决方案 »

  1.   

    Private Sub Combo1_Click()
        
        Dim strSql  As String
        Dim rst     As Recordset
        
        strSql = "select * from 物料基本资料 where 产品代码 = '" & Replace(Combo1.Text, "'", "''") & "'"
        
        Set rst = GetRecordset(strSql)          ' 执行Sql并返回结果集
        
        If rst.RecordCount > 0 Then
            Text2.Text = rst.Fields("产品编码").Value & vbNullString
            Text3.Text = rst.Fields("产品名称").Value & vbNullString
            Text4.Text = rst.Fields("零件名称").Value & vbNullString
        End If
        
    End Sub
      

  2.   

    在选择每个项目的,时候,获取这个项目的ID值,然后根据这个ID值,再到数据库里查找这个ID的记录详细信息。然后再把这些信息赋值出去
      

  3.   

    晕,GetRecordset方法我都说明了用来执行查询的,代码很简单。
    Public Function GetRecordset(ByVal Sql As String) As ADODB.Recordset
        
        Dim cnn     As ADODB.Connection
        Dim rst     As ADODB.Recordset
        
        Set cnn = New ADODB.Connection
        cnn.CursorLocation = adUseClient
        cnn.Open "Driver={sql server};server=192.168.0.1;database=new;uid=jean;pwd=jean"
        
        Set rst = New ADODB.Recordset
        rst.Open Sql, cnn, adOpenKeyset, adLockOptimistic
        Set GetRecordset = rst
        
    End Function