Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

怎样让在追加查询时,发现有重复数据时提示

Lee  发表于:2011-03-28 20:35:49  
复制

我设计了按钮运行一个追加查询,把查询结果追加到“表A”内,我想要的结果是:

如运行追加查询时发现表A内有PO、产品编号、数量三者数据相同时,弹出提示窗口“表内已有相同数据,是否继续追加”,然后“是”运行追加查询或“否”取消运行。

请问代码要如何写?

 

Top
danis 发表于:2011-03-28 22:20:53
UPDATE A RIGHT JOIN B ON A.ID=B.ID SET A.Name=[B].[Name], A.ClsNo=[B].[ClsNo],A.Score=[B].[Score];


网行者 发表于:2011-03-28 23:08:43
网行者 发表于:2011-03-29 05:22:29
Lee 发表于:2011-03-29 10:18:43

谢谢网行者,你的示例是在按钮代码中运行查询,因我对代码不熟,请问条件判断的代码具体怎样写,谢谢。

附上示例

 

点击下载此附件

网行者 发表于:2011-03-29 22:44:00

点击下载此附件

 

说明:先查询,再在子窗体中选择要添加的记录,再点击“追加”按钮



网行者 发表于:2011-03-29 22:48:17
蔡小东 发表于:2011-03-30 10:39:28

用dcount检查

 



Lee 发表于:2011-03-30 22:22:16

网行者,回复的示例代码台下:

 

Private Sub Command8_Click()
POChk = DCount("[PO]", "表A", "[PO]='" & Me.PO & "' And [产品编号]='" & Me.产品编号 & "' And [数量]=" & Me.数量)
If POChk <> 0 Then
Response = MsgBox("表内已有相同数据,是否继续追加!", vbYesNo, "提示")
  If Response = vbYes Then
  DoCmd.RunSQL "insert into 表A (PO,产品编号,数量) values ('" & Me.PO & "','" & Me.产品编号 & "','" & Me.数量 & "')"
  MsgBox "数据已添加,请添加下一条!", vbInformation, "提示"
  Me.产品编号 = Null
  Me.数量 = Null
  ElseIf Response = vbNo Then
  MsgBox "请重新选择!", vbInformation, "提示"
  Me.产品编号 = Null
  Me.数量 = Null
  End If
Else
DoCmd.RunSQL "insert into 表A (PO,产品编号,数量) values ('" & Me.PO & "','" & Me.产品编号 & "','" & Me.数量 & "')"
MsgBox "数据已添加,请添加下一条!", vbInformation, "提示"
Me.PO = Null
Me.产品编号 = Null
Me.数量 = Null
End If
End Sub

 

运行后有如下问题:

1. 如有重复记录每次只能追加一条,在实际应用中不实用,因按PO查询到的记录有几十条。

2. 当不想追加点击“否”后会弹出错误调整窗口。

3.子窗体下面的“产品编号”和“数量”文本框是否为POChk = DCount("[PO]", "表A", "[PO]='" & Me.PO & "' And [产品编号]='" & Me.产品编号 & "' And [数量]=" & Me.数量)而设?我觉得可以优化。

另,为何不直接运行已设置好的“追加查询”,而另写语句“insert into 表A (PO,产品编号,数量) values ('" & Me.PO & "','" & Me.产品编号 & "','" & Me.数量 & "')”?

是否我太菜问题太多了?



网行者 发表于:2011-03-31 06:24:36

1、我的示例是逐条追加的

2、当不想追加点击“否”后会弹出错误调整窗口:

   可能是你复制时漏了前面的变量声明语句,下面三条要同时复制过去

   Option Explicit
   Dim POChk As Variant
   Dim Response As String

3、子窗体下面的“产品编号”和“数量”文本框确实是为POChk = DCount("[PO]", "表A", "[PO]='" & Me.PO & "' And [产品编号]='" & Me.产品编号 & "' And [数量]=" & Me.数量)而设,设计完成后将其属性设为”不可见“即可。应该有其它方法优化

4、为何不直接运行已设置好的“追加查询”:答案见一楼

5、是否我太菜问题太多了?

   大家彼此彼此,共同进步

6、本题其它解法:我想能否用循环语句,逐条判定再选择是否追加,但我目前功力不够。如果不是选择追加的话,可以先查找不匹配项,再一次追加进去。

 

好啦,就到这里!



Lee 发表于:2011-03-31 11:35:25
哦原来如此,我再研究消化一下,非常感谢你的回复,也欢迎其他朋友一齐想办法。

网行者 发表于:2011-04-03 06:54:38

 

 

点击下载此附件

操作说明:

1、先点击“不重复项追加”按钮

2、再选择PO值,点击“查找重复项”按钮

3、在子窗体中选择要追加的项目,再点击“重复项追加”按钮



网行者 发表于:2011-04-03 07:02:17

12楼操作搞反了,应按2、3、1步骤进行



网行者 发表于:2011-04-03 22:57:57

赚这两分真不容易!

换个思路,将系统自动提示改为自己在重复项中多项选择追加

点击下载此附件

操作步骤:

1、先选择条件(为组合框联动,需按次序在组合框中选择),点击“重复项查询”按钮,下面两个子窗体中分别显示表1、表A中重复项

2、再在“表1查询子窗体”中选择需追加的记录,点击“重复项追加”按钮,追加到表A,后面的操作中已追加的记录都有对勾标识

3、所有重复项追加完毕后,点击“不重复项追加”,将表1中不重复项一次性追加到表A



Lee 发表于:2011-04-04 22:31:30
虽然操作复杂了点,但从解决重复追加(如果这情况会经常出现的话)来说,这确实是个办法。

网行者 发表于:2011-04-05 06:05:36
总记录:16篇  页次:1/1 9 1 :