24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3782  |  回复: 0

xuezhiwu

银虫 (初入文坛)

[求助] 在对应所需名称或序数的集合中,未找到项目,请问我的代码哪里有错误?

Private HXZT As String
Option Explicit
Dim i As String
Dim Index As Integer
Private Sub Form_Load()
    Dim rst As ADODB.Recordset
    '初始化查询条件ComboBox
    CboQuery.AddItem ("销售单号"
    CboQuery.AddItem ("客户编号"
    CboQuery.ListIndex = 0                      '默认查询条件为销售单号
   
    '初始化客户编号ComboBox
    Call LinkdataBase
    rs1.Open " Select * from 客户资料表", conn, 1, 1

    If rs1.RecordCount = 0 Then
        MsgBox "没有客户编号,请先建立客户资料!"
        Exit Sub
    Else
        Do While Not rs1.BOF And Not rs1.EOF
            '添加到ComboBox列表
            Me.CboKHID.AddItem (rs1.Fields("客户编号" & rs1.Fields("客户名称")
            rs1.MoveNext                        '指向下一条记录
        Loop
        CboKHID.ListIndex = 0                   '默认ComboBox
        rs1.Close
    End If
   
    Call LoadData                               '装载数据
    Call ShowData                               '显示数据
End Sub
Private Sub LoadData()

'装载数据
    Dim colName As String                       '保存所选择的查询条件
    Dim colValue As String                      '保存所要查询具体的值
    Dim strWhere As String
    colName = CboQuery.Text                     '取出条件的值
    colValue = txtQuery.Text                    '取出所要查询的值
    '构建条件
    HXZT = "未核销"
    'strWhere = " where " & colName & " like '%" & colValue & "%' and 是否核销='" & Trim(HXZT) & "'"
  
   ' Set rs = Nothing
    Call LinkdataBase
    '查询销售单”
     rs.Open "select * from 销售单表 where 销售单号='" & Trim(txtQuery.Text) & "'and 是否核销='" & Trim(HXZT) & "'", conn, 1, 1

    Set Me.DataGrid1.DataSource = rs
    DataGrid1.Refresh
    If rs.RecordCount = 0 Then                  '如果不存在记录
        '编辑控件可用性
        CmdSave.Enabled = False
        '移动控件不可用
        For Index = 0 To 3
            CmdMove(Index).Enabled = False
        Next Index
    Else
        '编辑控件可用性
        CmdSave.Enabled = True
        For Index = 0 To 3
            CmdMove(Index).Enabled = True
        Next Index
    End If
    '设置控件Enable值
    Call ControlEnable(False)
End Sub
Private Sub ControlEnable(flag As Boolean)
'设置控件的Enable值
    CboKHID.Enabled = False
    DTPicker1.Enabled = False
    For Index = 0 To 6
        txt(Index).Enabled = False
    Next Index
End Sub
Private Sub ShowData()
'在控件中显示数据
    If rs.RecordCount <> 0 Then                 '如果存在记录
        '为控件赋值
        txt(0).Text = rs.Fields("销售单号"
        '保证记录中的客户编号与ComboBox中的值相一致
        For Index = 0 To CboKHID.ListCount - 1
            If Left(Trim(CboKHID.List(Index)), 4) = rs.Fields("客户编号" Then
                CboKHID.ListIndex = Index
                Exit For
            End If
        Next Index
        DTPicker1.Value = rs.Fields("销售日期"
        For Index = 1 To 6
            txt(Index).Text = rs.Fields(Index + 2)
        Next Index
    End If
End Sub
Private Sub CmdMove_Click(Index As Integer)
'移动记录操作
    Select Case Index
    Case Is = 0                                 '移到第一条记录
        If Not rs.BOF Then rs.MoveFirst
    Case Is = 1                                 '移到上一条记录
        If rs.RecordCount <> 0 Then
            If rs.BOF = False Then rs.MovePrevious
            If rs.BOF = True Then rs.MoveFirst
        End If
    Case Is = 2                                 '移到下一条记录
        If rs.RecordCount <> 0 Then
            If rs.EOF = False Then rs.MoveNext
            If rs.EOF = True Then rs.MoveLast
        End If
    Case Is = 3                                 '移到最后一条记录
        If rs.RecordCount <> 0 Then
            If Not rs.EOF = True Then rs.MoveLast
        End If
    End Select
    Call ShowData
End Sub
Private Sub CmdSave_Click()
'出库操作
    On Error GoTo ErrMsg
    '错误处理
     i = MsgBox("您确实要把当前销售单出库吗?", vbYesNo)
    If i = vbYes Then
        Call setData                            '设置数据
    Else
        Exit Sub
    End If
    rs.Update                                   '更新数据
    CmdSave.Enabled = False
    MsgBox ("成功出库!"
   
    Call LoadData                               '重新装载数据
    Call ShowData                               '重新显示数据
    Exit Sub
ErrMsg:                                         '报告出错信息
    MsgBox Err.Description, vbExclamation, "出错"
End Sub
Private Sub setData()
'为字段设置数据
    Call LinkdataBase
    '将商品库存数量减去销售单明细中的销售数量
    rs1.Open " select * from 销售单明细表 where 销售单号='" & txt(0).Text & "'", conn, 1, 1
   
    Do Until rs1.EOF
        rs2.Open "select * from 商品库存表 where 商品编号='" & rs1.Fields("商品编号" & "'", conn, 1, 1
      
        rs2.Fields("库存数量" = Val(rs2.Fields("库存数量") - Val(rs1.Fields("销售数量")
        rs2.Fields("库存总金额" = Val(rs2.Fields("库存总金额") - Val(rs1.Fields("销售数量") * Val(rs2.Fields("成本价")
        rs2.Update                               '更新数据
        rs1.MoveNext
    Loop
    '销售单的"是否核销"标志变成"已核销"
    rs.Fields("是否核销" = "已核销"
    rs2.Close
    rs1.Close
End Sub
Private Sub CmdQuery_Click()
'查询操作
    Call LoadData                               '装载数据
    Call ShowData                               '显示数据
End Sub
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xuezhiwu 的主题更新
信息提示
请填处理意见