在做进销存管理系统的时候在销售那一块,遇见这么一个问题,就是我要实现一个业务员Combo1(1)在仓库Combo1(4)里提取商品,结果当我选好业务员Combo1(1)和要提取商品的仓库Combo1(4)的时候,选择商品名称Combo1(2),却不能显示商品代码txtItem(3),有效期限txtItem(11),销售单价txtItem(5).
我怀疑是SQL查询语句出了错误,但是不大清楚怎么改,因为商品代码txtItem(3),有效期限txtItem(11),和销售单价txtItem(5)不是同一张表,所以请高手帮忙看一下究竟是什么问题,急,谢谢了先
具体代码如下:Private Sub Combo1_Click(Index As Integer)
    Dim mrcc As ADODB.Recordset
    Dim mrcd As ADODB.Recordset
    Dim MsgText As String
    
    
    If Index = 1 Then
        
            txtSQL = "select dm,mb_reb  from dm_kh where mc = '" & Trim(Combo1(1)) & "'"
            Set mrcc = ExecuteSQL(txtSQL, MsgText)
                        
            If Not mrcc.EOF Then
                txtItem(2) = mrcc.Fields(0)
                txtItem(6) = mrcc.Fields(1)
            End If
            
            mrcc.Close    ElseIf Index = 2 Then
                txtSQL = "select kucun.wzdm,kucun.cxend,dm_wz.lsj  from kucun inner join  dm_wz on kucun.wzdm = dm_wz.dm  where kucun.wzdm = '" & Trim(Combo1(2).ItemData(Combo1(2).ListIndex)) & "'"
                Set mrcc = ExecuteSQL(txtSQL, MsgText)
                            
                If Not mrcc.EOF Then
                    txtItem(3) = mrcc.Fields(0)
                    txtItem(11) = mrcc.Fields(1)
                    txtItem(5) = mrcc.Fields(2)
                End If
                
                mrcc.Close
    ElseIf Index = 4 Then
            txtItem(10) = Combo1(4).ItemData(Combo1(4).ListIndex)
            
            Combo1(2).Clear
            
            txtSQL = "select dm_wz.dm,dm_wz.mc  from kucun inner join dm_wz on kucun.wzdm = dm_wz.dm where kucun.ckdm = '" & Trim(txtItem(10)) & "'"
            Set mrcc = ExecuteSQL(txtSQL, MsgText)
            
            If Not mrcc.EOF Then
                Do While Not mrcc.EOF
                    Combo1(2).AddItem mrcc.Fields(1)
                    Combo1(2).ItemData(Combo1(2).NewIndex) = mrcc.Fields(0)
                    
                    mrcc.MoveNext
                Loop
                mrcc.Close
            End If
                    
                
            
    ElseIf Index = 5 Then
        If Combo1(5).ListIndex = 0 Or Combo1(5).ListIndex = 1 Then
            txtItem(8).Visible = False
            Label2(13).Visible = False
        Else
            txtItem(8).Visible = True
            Label2(13).Visible = True        End If
    End IfEnd Sub

解决方案 »

  1.   

    这一句有问题:
     txtSQL = "select kucun.wzdm,kucun.cxend,dm_wz.lsj  from kucun inner join  dm_wz on kucun.wzdm = dm_wz.dm  where kucun.wzdm = '" & Trim(Combo1(2).ItemData(Combo1(2).ListIndex)) & "'"因为不知道你的具体数据,所以只能猜测可能原因:
    1、Combo1(2).ItemData(Combo1(2).ListIndex  可能你的kucun.wzdm 不是varchar而是char,那么你就不应该用Trim。
    2、inner join  关联错误造成记录集返回eof.
      

  2.   

    不是1、Combo1(2).ItemData(Combo1(2).ListIndex  可能你的kucun.wzdm 不是varchar而是char,那么你就不应该用Trim。这个原因吧,其他的是char类型还是可以用trim的
    是不是inner join错误啊?我觉得这里有问题,但是不知道该怎么解决~知道的麻烦进来指点,谢了
      

  3.   

    应该是数据源的问题,楼主中断下,查查看SQL语句!