Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access开发平台

Access快速开发平台进销存教程--打开商品分类树让已停用的数据不显示在库存查询数据项的解决方法

时 间:2024-03-05 08:37:32
作 者:麥田   ID:11  城市:上海  QQ:3002789054点击这里给麥田发消息
摘 要:Access快速开发平台的进销存教程做出来的库存查询,打开商品分类树菜单后是73项,有2项停用也显示了,如何实现让商品分类树的已停用的数据项不显示出来?
正 文:

一、学员问题描述:
中级班:张家口--穗康鲜食-148期 13:11:12
请问老师,我在用Access快速开发平台进销存培训教程做出来的库存查询,打开商品分类树菜单后是73项,有2项停用也显示了,如何实现让商品分类树的已停用的数据项不显示出来?如下图:
点击图片查看大图

二、解决方法:
      见更改后的商品分类树代码,用下面整段代码替换教程里面的该段代码,重点见下图图示框出来的代码区红色字样的条件:
Public Function RunQuery(WhereCondition As String)
    Dim strWhere As String
    Dim objNode  As Object 'MSComctlLib.Node
    Set objNode = Me.ocx分类树.SelectedItem

    '自定义的多条件查询中,每个条件生成表达式的时候,可以把If Then写到一行,这样比较紧凑
    '条件再多也基本上一屏之内可以显示全,方便阅读
    If Not objNode Is Nothing Then
        If objNode.Key <> "K" Then strWhere = " AND 分类编号 Like '" & Mid(objNode.Key, 2) & "*'"
    End If
    If Len(WhereCondition) > 0 Then strWhere = strWhere & " AND " & WhereCondition
    '前面根据每个条件生成的表达式前面都有 “ AND ”,因此到最后最前面的就是多余的,需要去掉
    '因此这里用 Mid 函数从左起第6个字符开始取(AND加上前后的空格共5个字符),前面的就被去掉了
    strWhere = Mid(strWhere, 6)
    '如果条件不为空,则在前面加上 Where 关键字,用于生成 SQL 语句的 Where 子句
    If Len(strWhere) > 0 Then
        strWhere = " Where " & strWhere
    Else
        strWhere = " Where 已停用=False"
    End If
    
    '通过重置数据列表子窗体“记录源”属性的方式来实现查询
    Me.sfrList.Form.RecordSource = "Select 商品信息表.商品编码, 商品信息表.品名规格, 商品信息表.拼音码, 商品信息表.分类编号, 商品信息表.外包装, 商品信息表.内包装, 商品信息表.内包装数量, 商品信息表.小包装数量, 商品信息表.单位, [内包装数量]*[小包装数量] AS 单位数量, 商品信息表.库存数量, [内包装数量]*[小包装数量]*[库存数量] AS [库存数量(穗)], 商品信息表.最新进价, 商品信息表.最新售价, 商品信息表.库存下限, 商品信息表.库存上限, 商品信息表.备注, 商品信息表.已停用 FROM 商品信息表 " & strWhere
    

End Function


如下图:

点击图片查看大图

这样就实现了让商品分类树打开就只显示在用的所有库存数据了,如下图:
点击图片查看大图


Access快速开发平台QQ群 (群号:321554481)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助