设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 在窗体录入时,已经用OUTLOOK函授发现有重复数据,怎么把重复的数据显示出来?

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-3 05:09:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一个公司有三个门市部,每个门市部都有单独的顾客名单及购买明细,同一个顾客可能在三个地方都有记录.

现在要统计客户资料, 主窗体录入为

CUSTOMER NUMBER (自动生成)

姓名

地址

EMAIL

电话

对应的子窗体录入

购买产品,金额,购买日期,购买地点(用下拉菜单,在三个地点选一个)



在主窗口录入姓名那栏时,用下面方法提醒如果有重复输入

Private Sub name_AfterUpdate()
If Not IsNull(DLookup("[name]", "[customer]", "[name]='" & Forms![customer]![name] & "'")) Then
MsgBox "ossible redundant data!"
End If

End Sub

问题时姓名虽然提醒有重复了,但是这个有两个可能:一个是和前面输入的是名字相同的同一个人,也有可能不是同一个人,所以需要把前面的数据显示出来,以判断是不是同一个,如果是,就直接在子窗体输入购买明细,如果不是同一个人,那么就在主窗体添加记录.

所以,如何显示重复的数据呢?





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
8#
 楼主| 发表于 2006-9-9 01:18:00 | 只看该作者
以下是引用vont在2006-9-7 20:06:00的发言:



非常非常感谢.


仔细研究了半天,(不好意思,俺刚开始学),发现例子里显示重复数据的方法是把找到的数据用FIELDS把那列显示出来,我现在需要把那一行都显示出来,该用什么呢?


Rs.Open "SELECT * FROM [customer] where [customer]![name]='" & Forms![customer]![name] & "'", SysConn, adOpenDynamic, adLockOptimistic ' (这个已经把我要找的数据全放在RS里面了)


Do While Not Rs.EOF
       If Not IsNull(DLookup("[name]", "[customer]", "[name]='" & Forms![customer]![name] & "'")) Then


            cName = cName & (Rs.Fields("name")) & "     "
            cAddress = cAddress & (Rs.Fields("address")) & Chr(13)


        End If
   
        Rs.MoveNext
Loop
    If Len(cName) > 0 Then
    Tsxx = "Customer with the same names:" & Chr(13) & Chr(13) & cName & Chr(13) & cAddress & Chr(13) & "      Would you like to continue?"
  
        MsgBox Tsxx
    End If


这样显示的是按列排的,我想显示出RS里面所有的数据,但是按行排,有什么函数吗?

自己订
7#
 楼主| 发表于 2006-9-8 04:06:00 | 只看该作者
以下是引用andymark在2006-9-7 14:39:00的发言:



     在MSGBOX显示所有重复数据可参考这个写法


     http://www.office-cn.net/forum.php?mod=viewthread&tid=44687&replyID=&skin=1

非常非常感谢.

仔细研究了半天,(不好意思,俺刚开始学),发现例子里显示重复数据的方法是把找到的数据用FIELDS把那列显示出来,我现在需要把那一行都显示出来,该用什么呢?

Rs.Open "SELECT * FROM [customer] where [customer]![name]='" & Forms![customer]![name] & "'", SysConn, adOpenDynamic, adLockOptimistic ' (这个已经把我要找的数据全放在RS里面了)

Do While Not Rs.EOF
       If Not IsNull(DLookup("[name]", "[customer]", "[name]='" & Forms![customer]![name] & "'")) Then

            cName = cName & (Rs.Fields("name")) & "     "
            cAddress = cAddress & (Rs.Fields("address")) & Chr(13)


        End If
   
        Rs.MoveNext
Loop
    If Len(cName) > 0 Then
    Tsxx = "Customer with the same names:" & Chr(13) & Chr(13) & cName & Chr(13) & cAddress & Chr(13) & "      Would you like to continue?"
  
        MsgBox Tsxx
    End If

这样显示的是按列排的,我想显示出RS里面所有的数据,但是按行排,有什么函数吗?
6#
发表于 2006-9-7 23:12:00 | 只看该作者
^_^!!!
5#
发表于 2006-9-7 22:39:00 | 只看该作者
以下是引用vont在2006-9-7 14:12:00的发言:
新问题来了,我已经用MSGBOX提示可能重复的数据了,可是MSGBOX弹出的对话框中只能显示一个数据,比如我输入张三,如果前面有张三了,弹出对话框显示这个张三的编号,名字,地址等等.问题是如果前面有两个张三,提示框只能显示后一个张三的数据,请问怎么用列表框或是其他什么办法显示前面所有张三的数据呢?

     在MSGBOX显示所有重复数据可参考这个写法

     http://www.office-cn.net/forum.php?mod=viewthread&tid=44687&replyID=&skin=1
4#
 楼主| 发表于 2006-9-7 22:12:00 | 只看该作者
新问题来了,我已经用MSGBOX提示可能重复的数据了,可是MSGBOX弹出的对话框中只能显示一个数据,比如我输入张三,如果前面有张三了,弹出对话框显示这个张三的编号,名字,地址等等.问题是如果前面有两个张三,提示框只能显示后一个张三的数据,请问怎么用列表框或是其他什么办法显示前面所有张三的数据呢?
3#
 楼主| 发表于 2006-9-3 17:28:00 | 只看该作者
以下是引用andymark在2006-9-2 23:03:00的发言:


文本框,子窗体,列表框,msgbox等等 都可以显示相关的重复数据

谢谢回复,子窗体已经是购买明细了,应该不能再显示客户的资料了,如果要在文本框中显示,应该用什么语句呢?



因为有下载权利了,刚才在坛子里搜了一下,找到了一个可以用MSGBOX显示重复记录的例子

http://www.office-cn.net/forum.php?mod=viewthread&tid=35681&replyID=179381&skin=1

多谢各位了.

[此贴子已经被作者于2006-9-3 9:35:34编辑过]

2#
发表于 2006-9-3 07:03:00 | 只看该作者
文本框,子窗体,列表框,msgbox等等 都可以显示相关的重复数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-2 02:47 , Processed in 0.094807 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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