设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1171|回复: 5
打印 上一主题 下一主题

[查询] 求助:多条件追加查询

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-10 13:05:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
**:表《期初在库》字段名有:仓库编码\存货编码\存货名称\规格型号\主计量单位\生产线\现存数量\品番\类型,
     表《zaikolist》字段名有:仓库编码\存货编码\存货名称\规格型号\主计量单位\生产线\现存数量,
     需将表《zaikolist》中的数据追加至表《期初在库》,同时条件有:
    1、只选取<仓库编码>是"01","02","03","22"的数据追加;
    2、<仓库编码>是"03"的数据,增加(品番\类型)字段名的数据,
         1)、品番:当《存货名称》为"加热线"且单位为"M"时,显示为"加热线";
                         当《存货名称》为 "检知线",显示为"加热线";
                         当《存货名称》为"加热线"且单位为"KG",显示为"加热线";
                         当《存货名称》为"电缆线*",显示为"电缆线加工";
                         其他显示为"加热线加工"。
         2)、类型:当《存货名称》为"加热线"且单位为"M",显示为"加热线";
                         当《存货名称》为"检知线",显示为"加热线";
                         当《存货名称》为"黄色导线"或者《存货名称》"毛布",显示为"毛布";
                         当《存货名称》为"加热线"且单位为"PC",显示为"毛布";
                         当《存货名称》为"ヒーター取付具組"或者《存货名称》为"便座"或者《存货名称》为"传感加热器",显示为"便座";
                         当《存货名称》为"加热线"且单位为"KG",显示为"加热线半成品";
                         当《规格型号》为"SATA*"或者《规格型号》为"*V90*",显示为"Toshiba";
                         当《规格型号》为"*TXJ*"或者《规格型号》为"*HDMI*"或者《规格型号》为"DUMM*",显示为"Psnasonic";
                         当《规格型号》为"*EF*",显示为"Hitachi";
                         其他显示为"Sony"。

问题:我采用IIF函数时出错,不能使用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-11-10 19:41:44 | 只看该作者
过于复杂的情况下,不如多几次追加查询为好。
3#
 楼主| 发表于 2009-11-11 09:03:17 | 只看该作者
老师,关键是我在追加《类型》数据时,条件多,使用IIF函数有次数限制,同时使用IIF函数好像最多不能超过6次,不能达到我的要求,请老师指点!
4#
发表于 2009-11-11 13:43:23 | 只看该作者
本帖最后由 aslxt 于 2009-11-11 13:46 编辑

1、新建模块
Option Compare Database
Function PP(ByVal NM As String, ByVal DW As String) As String
  Select Case NM
  Case "加热线"
    Select Case DW
    Case "M"
      PP = "加热线"
    Case "KG"
      PP = "加热线"
    Case Else
      PP = "加热线加工"
    End Select
  Case "检知线"
    PP = "加热线"
  Case "电缆线*"
    PP = "电缆线加工"
  Case Else
    PP = "加热线加工"
  End Select
End Function
Function LX(ByVal NM As String, ByVal DW As String, ByVal GG As String) As String
  Select Case GG
  Case "SATA*"
    LX = "Toshiba"
  Case "*TXJ*"
    LX = "Psnasonic"
  Case "*HDMI*"
    LX = "Psnasonic"
  Case "DUMM*"
    LX = "Psnasonic"
  Case "*EF*"
    LX = "Hitachi"
  Case Else
    Select Case NM
    Case "加热线"
      Select Case DW
      Case "M"
        LX = "加热线"
      Case "KG"
        LX = "加热线半成品"
      Case "PC"
        LX = "毛布"
      Case Else
        LX = "Sony"
      End Select
    Case "检知线"
      LX = "加热线"
    Case "黄色导线"
      LX = "毛布"
    Case "毛布"
      LX = "毛布"
    Case "ヒーター取付具組"
      LX = "便座"
    Case "便座"
      LX = "便座"
    Case "传感加热器"
      LX = "便座"
      
    Case Else
      LX = "Sony"
    End Select
  End Select
End Function
2、新建查询
INSERT INTO 期初在库 ( 仓库编码, 存货编码, 存货名称, 规格型号, 生产线, 主计量单位, 现存数量, 品番, 类型 )
SELECT zaikolist.仓库编码, zaikolist.存货编码, zaikolist.存货名称, zaikolist.规格型号, zaikolist.生产线, zaikolist.主计量单位, zaikolist.现存数量, PP([存货名称],nz([主计量单位],"")) AS 品番, LX([存货名称],[主计量单位],nz([规格型号],"")) AS 类型
FROM zaikolist
WHERE (((zaikolist.仓库编码)="01" Or (zaikolist.仓库编码)="02" Or (zaikolist.仓库编码)="03" Or (zaikolist.仓库编码)="22"));
3、运行查询
ok?
注意:类型的字段是首先根据规格型号、然后到名称、计量单位这样的顺序判断,如果不符合你的意图,可以修改模块以达到你的目的
5#
 楼主| 发表于 2009-11-11 17:18:15 | 只看该作者
谢谢老师
6#
 楼主| 发表于 2009-11-12 11:18:59 | 只看该作者
老师,问题出现了,请帮忙再改正下!
1、我想只针对(zaikolist.仓库编码)="03" 追加“品番”和“类型”数据,现全部追加了;
2、追加的“品番”数据中没有体现“电缆线加工”,“类型”数据中没有体现“Toshiba”,“Psnasonic",”Hitachi“,“加热线半成品”。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-20 19:48 , Processed in 0.100697 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表