设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 9707|回复: 22
打印 上一主题 下一主题

[模块/函数] 【Access小品】屌丝的逆袭---女友租赁合同管理系统示例

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-20 13:05:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2013-3-20 14:50 编辑

  近日,著名大导演冯小刚在微博上针对屌丝的抨击,引发广泛吐槽和愤慨。近年来网络创造了许多新的名词,这些名词的背后代表着许多的黑色幽默。“屌丝”一词据说是指这么一类人:“生活平庸、未来渺茫、感情空虚,不被社会认同。他们也渴望获得社会的高度认可,但又不知道该怎么去做,生活没有目标,缺乏热情,不满于无聊的生活但又不知道该做点什么。”

  在我看来屌丝们还不是无赖者,而是无奈者。于是乎无奈者常常会做出一些无奈的行为,比如逢年过节租女朋友或者男朋友回家应付家长,这应该看成屌丝们的无奈举动。无论如何,屌丝有屌丝的生活,这种生活是一种社会存在,但凡存在都有合理的一面。问题在于能不能对屌丝的生活行为进行一些管理呢?从数据管理的角度来讲,这是可以实现的。

  男屌丝要想租赁一个女屌丝,是需要双方签订一个合同的。合同中有一类叫做定制合同,也就是合同的大部分条款是固定不变的,合同双方只需要对极少部分的条款内容进行约定。这样的合同可以为双方节省编制合同的时间,提高编制的效率。对于大部分屌丝们来说,起草租赁男女朋友的合同并非易事,所有有好事者起草了一份“女友出租合同”,这是一个风趣的定制合同。我们的目标是要对这些合同进行数据管理,怎么来做呢?

  可以这样设计:1、建立一个word文档,作为《租女友合同》的模版,这个模版需要锁定,只留出少数需要填写数据的部分可供编辑。2、设计一个Access数据库管理程序,用于读写word文档,并存放基本数据。具体怎么个搞法,可以下载本实例进行学习。本例中男女屌丝的姓名纯属虚构,如有雷同切勿对号入座。

  本示例展现的是屌丝的逆袭,说明的却是Access与Word的交互过程,在这个过程中有丰富的技巧可供初学者参考。

  示例文件:

  word文档锁定操作视图:



      Access操作视图:

 




本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享分享 分享淘帖1 订阅订阅

点击这里给我发消息

2#
发表于 2013-3-20 14:11:24 | 只看该作者
老汉最近正则表达式用得越来越得心应手啊!
代码中没有注释,看得头晕。

点击这里给我发消息

3#
发表于 2013-3-20 14:14:46 | 只看该作者
不错,这个东东用得着,当初要做ERP中合同管理模块时没找到,后来合同管理不做了也没研究这个了
4#
发表于 2013-3-20 14:46:24 | 只看该作者
这个好 要好好研究一下了
5#
 楼主| 发表于 2013-3-20 15:26:40 | 只看该作者
本帖最后由 todaynew 于 2013-3-20 16:04 编辑
轻风 发表于 2013-3-20 14:11
老汉最近正则表达式用得越来越得心应手啊!
代码中没有注释,看得头晕。

strmatch = "(^出租方:)(.*)((?:\r\n)+承租方:)(.*)((?:\r\n)+(?:.*|(?:\r\n)+)*$)"
If TestStr(str, strmatch) = True Then
    Restr = "$1" & Me.出租方.Value & "$3" & Me.承租方.Value & "$5"
    str = ReplaceMatch(str, strmatch, Restr)
    Me.合同.Caption = str
End If

以上代码的解释:
一、strmatch存放的是一个正则表达式,这个正则表达式可以写为:
1、(^出租方:)表示文章的开始是“出租方:”,其中^表示字符串的开始位置的通配符。
2、(.*)表示一串各种类型的字符,其中“.”通配任意字符,“*”表示重复0到任意次数。
3、(?:\r\n)+表示一个以上的回车符与换行符,\r为回车符即chr(13),\n为换行符即chr(10),“+”表示至少一次(与“*”类似,只是起始值不同,“*”可以是0次),(?:正则表达式)中的“?:”表示不捕获这个正则表达式变量。
4、(?:.*|(?:\r\n)表示或者是一串连续的字符,或者是回车符与换行符,也就是所有段落(也可以写成"(?:.*\r\n)"一段字符串紧跟着回车换行符)。
5、成对出现的括号中,除了包含?:这样的东西外,都是被捕获到的正则表达式变量,所以这个表达式总共有5个正则表达式变量,它们从左到有依次默认的变量名为$1、$2、$3、$4、$5。

二、Restr中存放的也是一个正则表达式,所不同的是它直接调用strmatch中捕获到的正则表达式变量,并重新拼凑正则表达式。也就是将正则表达式变量$2、$4分别用Me.出租方.Value和Me.承租方.Value替换掉。实际上$2和$4变量标识出的是一个替换位置。所以strmatch也可以采用环视(有的文章叫做零带)的方式来写,这样也可以方便的找到需要替换的位置。

三、ReplaceMatch(str, strmatch, Restr)做正则表达式替换。

四、在后面用了一个strmatch = "(^(?:.*\r\n)*\s+.*租女友时间:)(.*)(至)(.*)(,共计)(\d+)(天,每天基本租金)(\d+)((?:元)(?:.*\r\n)*$)"的正则表达式,大部分的正则表达式元字符在前面都已经解释过了,只有两个需要说明一下:
1、\s+表示多个连续的空格;
2、\d+表示多个连续的数字字符。

五、表示一种匹配结果的正则表达式可以有很多种写法,这与对正则表达式熟悉的程度和个人习惯有关。

六、正则表达式示意图

本帖子中包含更多资源

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

x

点击这里给我发消息

6#
发表于 2013-3-20 17:39:23 | 只看该作者
强,留个记号回头研究。楼主真牛
7#
发表于 2013-3-20 18:40:05 | 只看该作者
该范例真搞呀
8#
发表于 2013-3-20 19:45:32 | 只看该作者
好东西

点击这里给我发消息

9#
发表于 2013-3-20 22:09:53 | 只看该作者
牛{:soso_e179:}
10#
发表于 2013-3-21 08:46:11 | 只看该作者
特太高了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 23:37 , Processed in 0.097751 second(s), 41 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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