设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] [已OK]以前没有在VBA中写过追加查询的东东

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2009-8-19 08:52:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 真主 于 2009-8-19 17:41 编辑

Dim Px3 As Integer
    Px3 = Me.序
    DoCmd.RunSQL "INSERT INTO A_CB_001产品工艺 ( 所属产品ID, 序, N ) SELECT A_CB_001产品工艺.所属产品ID, Px3, DMax("N","A_CB_001产品工艺","所属产品ID=Forms!C_CB_001产品主表!产品ID")+1 AS 最大值 FROM A_CB_001产品工艺 WHERE A_CB_001产品工艺.所属产品ID=[Forms]![C_CB_001产品主表]![产品ID] AND A_CB_001产品工艺.序=[Forms]![C_CB_001产品主表]![C_CB_001产品工艺]![序]"
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-8-19 09:03:13 | 只看该作者
把例子传上来,看的晕晕的。

点击这里给我发消息

3#
 楼主| 发表于 2009-8-19 10:34:50 | 只看该作者
  1. Dim Px3 As Integer
  2. Px3 = Me.序
  3. DoCmd.OpenQuery "B_CB_301插入点加1"
  4. DoCmd.RunSQL "INSERT INTO A_CB_001产品工艺 ( 所属产品ID, 序, N ) SELECT A_CB_001产品工艺.所属产品ID, Px3, DMax("N","A_CB_001产品工艺","所属产品ID=Forms!C_CB_001产品主表!产品ID")+1 AS 最大值 FROM A_CB_001产品工艺 WHERE A_CB_001产品工艺.所属产品ID=[Forms]![C_CB_001产品主表]![产品ID] AND A_CB_001产品工艺.序=[Forms]![C_CB_001产品主表]![C_CB_001产品工艺]![序]"
  5. ' DoCmd.SetWarnings True '打开系统提示
  6. Me.Recalc '重算
复制代码

我想完成的功能如下:
1、将当前行的序存为PX3
2、用更新查询“B_CB_301插入点加1”将序>=当前的全部加1
3、通过追加查询追加一行数据,追加的3个值分别是( 所属产品ID, 序, N )
所属产品ID=当前行的所属产品ID
序=PX3
N=所属产品ID相同的,N的最大值+1
4、重算,
因为我是按序进行排序的,从而达到插入的功能,但追加查询DoCmd.RunSQL "......",我写的不对,请帮忙看看

本帖子中包含更多资源

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

x
4#
发表于 2009-8-19 11:38:35 | 只看该作者
试一试:
DoCmd.RunSQL "INSERT INTO A_CB_001产品工艺 ( 所属产品ID, 序, N ) SELECT A_CB_001产品工艺.所属产品ID, Px3, DMax('N','A_CB_001产品工艺','所属产品ID=" & Forms!C_CB_001产品主表!产品ID & ")+1 AS 最大值 FROM A_CB_001产品工艺 WHERE A_CB_001产品工艺.所属产品ID=" & [Forms]![C_CB_001产品主表]![产品ID] & " AND A_CB_001产品工艺.序=" & [Forms]![C_CB_001产品主表]![C_CB_001产品工艺]![序]

点击这里给我发消息

5#
 楼主| 发表于 2009-8-19 12:03:09 | 只看该作者
还是不行,看来一个简单的插入功能我也搞不定,唉........
6#
发表于 2009-8-19 12:46:05 | 只看该作者
DoCmd.RunSQL "INSERT INTO A_CB_001产品工艺 ( 所属产品ID, 序, N ) SELECT A_CB_001产品工艺.所属产品ID, " & Px3 & ", DMax('N','A_CB_001产品工艺','所属产品ID=Forms!C_CB_001产品主表!产品ID')+1 AS 最大值 FROM A_CB_001产品工艺 WHERE A_CB_001产品工艺.所属产品ID=[Forms]![C_CB_001产品主表]![产品ID] AND A_CB_001产品工艺.序=[Forms]![C_CB_001产品主表]![C_CB_001产品工艺]![序]"
7#
发表于 2009-8-19 16:53:45 | 只看该作者
你的表要求产品工艺ID有索引(无重复),所以insert into的时候还要为产品工艺ID赋予一个值!

点击这里给我发消息

8#
 楼主| 发表于 2009-8-19 17:41:07 | 只看该作者
谢谢,OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-26 05:48 , Processed in 0.103380 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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