找回密码
 立即注册

QQ登录

只需一步,快速开始

教程经验总索引TVMW5/小日本5 索引【视频转换】小日本4/TE4XP 索引【视频转换】TAW4 / TDA3 索引【DVD打包软件】
Nero 索引DVD-Lab 索引【DVD打包软件】编解码器 索引 【必读】固顶帖011号
查看: 15684|回复: 27

[教程] Microsoft Office Access助你股海冲浪【原创精品】

  [复制链接]

62

威望

1万

金钱

344

贡献

高级会员

积分
14727
主题
67
回帖
1707
注册时间
2009-4-20
最后登录
2023-9-26
发表于 2011-1-17 23:00:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 chnxn 于 2011-1-18 14:57 编辑

【本帖系原创作品,独家发布于点拨论坛。谢绝任何网站、媒体转载本页内容!】

无论各位来自哪一个行业,总免不了要记录一些数据。比如,当老师的,要记录学生成绩,做生意的,要记录一些合同,商品资料什么的,就算工作不需要,家庭理财总是必须的,比如说记录一些买卖股票的数据。可能有许多人经常使用Excel来做这些记录。
Excel的计算功能是强大的,作为统计报表当然很好。不过,Excel也有缺点,数据一多,访问起来就不那么方便,查找起来相当费劲。有没有更好的办法呢?当然是有的。本人作为一个近20年股龄的老股民,根据自己的体会,觉得用Microsoft Office Access来记录更为合适。网上当然也有记录股票交易记录的软件,股票交易系统里也有持股成本数量等记录。但是,要么库存证券只有现在的,没有过去的,并且没有明细账,要么分类无法按照自己的意愿,总的来说,并不如意。自己动手才是最适合自己的。论坛里应该也不乏股市弄潮儿,我想把自己设计的股票交易数据库分享给点拨论坛的朋友。
这个数据库最好能区分曾经的持股和现在的持股,每只股票都能分类查询,可以知道库存的各种股票,已结的各种股票,每只股票的盈亏,库存股票的持股成本,每只股票的每一笔明细交易。库存股票的总成本,等等。
下面就介绍如何使用Microsoft Office Access建立证券交易数据库的方法。
1.        表的设计:
Microsoft Office Access数据库最基本的是表。表是我们用来输入数据的。表的设计极为关键,是数据库是否便于输入数据,访问数据,并形成报表的关键。从某种意义上看,表结构的设计思路比数据库软件的知识更重要。
股票交易无非是要记录交易日期,股票名称,数量,单价,总价,印花税,手续费,杂费等等。
如果照这样来设计一个表,那跟Excel没什么两样。从以上这些项目的特点来看,股票名称,印花税,手续费都是一一对应,独一无二的,必须单独设计,就像学生数据库里的学号,科目,合同数据库里的合同号,商品名等等一样。此外,再设计一个交易明细表,共四个表。
现在,让我们由浅入深地开始设计。
新建.png
首先,打开Microsoft Office Acces,新建一个空白数据库,里面有一个空表,右击之,选择--设计视图 填入表名称:证券名称。如上图。
这个表有两个字段:
字段名称:证券ID,数据类型:文本,字段大小:6位,必填字段:是,空字符串:否,索引:有(无重复),输入法:关闭,其余不用改。
最后是右击字段名称,选择—主键,设置后证券ID左侧会出现一个钥匙标记。
字段名称:证券名称,数据类型:文本,字段大小,目前8位就够了,我安排了10位,必填字段:是,空字符串:否,索引:无,输入法:开启(这里要打汉字),其余不用改。
同理设计印花税和手续费两个表,重要的是印花税税率和手续费费率的数据类型是数字,字段大小是单精度,单精度就足够了,没必要使用双精度型。
印花税ID和手续费ID也可以设置主键,不设主键似乎也没什么关系,不过,索引:有(无重复)是绝对必要的。
证券ID.png
证券ID字段的设置
证券名称.png
证券名称字段的设置
印花税ID.png
印花税ID字段的设置
印花税税率.png
印花税税率字段的设置
手续费ID.png
手续费YD字段的设置
手续费费率.png
手续费费率字段的设置

以上是三个表的设计图。
下面我们开始设计最常用的交易明细表。
日期.png
日期字段的设置
交证券ID.png
证券ID字段的设置
证券数量.png
证券数量字段的设置
单价.png
单价字段的设置
交印花税ID.png
印花税ID字段的设置
交手续费ID.png
手续费ID字段的设置
其它杂费.png
其它杂费字段的设置
交易类型.png
交易类型字段的设置
交易标记.png
交易标记字段的设置
备注.png
备注字段的设置
这个表不设主键,共10个字段,其中证券ID用于输入证券代码如000001等,印花税ID输入00、01等,手续费ID输入000、008等,分别对应其它3个表。其它杂费、交易类型、交易标记、备注的作用已写在说明中。说明中的文字在你输入该字段数据时会出现在状态条,给你提示。
字段的详细设置在前面的几张途中。
有几点补充一下:这里应该设置默认值和有效性规则,以提高效率并减少错误。另外,证券数量应该采用长整型数据,若用整型,购买26000股时就会出错,长整型数据足够普通人使用了。其它杂费主要是上海市场的过户费,此外,派息也纳入此字段,不过派息应该填入负值。交易标记采用 是/否 型数据,最为节省,只有一位,也就是 0和1。设计数据类型要根据需要,而不是越大越好,否则,占据硬盘,而且降低速度。
查阅1.png
证券ID字段查阅的设置
查询2.png
印花税ID字段查阅的设置
查阅3.png
手续费ID字段查阅的设置
证券ID、印花税ID和手续费ID这3个字段还必须设置 查阅 。采用列表框较合适。字段来源于其它表, 要按实际情况设置,还有绑定列以及列宽等都要设置,各位可参阅这3 张图进行设置。
这样,表设计就算完成了。表设计一定要非常仔细,反复检查。等到使用后,甚至是建立查询后再发现问题就比较难以修改了,有时甚至无法修改,因为数据库内各个单元已经有了千丝万缕的关系就无法修改了。
2.        表 关系的创建:
关系1.png
关系2.png
关系3.png
如图,点击 数据库工具—关系,右击—显示表,全部4个表都添加,按图一一拖动鼠标,创建—保存即可。
现在,4个表的关系已经建立,构成了数据库的基础。
3.        表的数据输入:
输入证券名称.png
输入印花税手续费.png
证券名称、印花税、手续费3个表都只有2个字段,输入非常简单。右击该表,选择—打开,即可输入。证券代码和名称根据需要输入,印花税,设置了0,0.1%,0.3%,手续费设置了0,0.08%,0.15%,各位可以根据需要添加。记得将3个表格的第一项都设置为升序。参阅上图。
输入交易明细表.png
交易明细表的输入比较有讲究。看看上图就知道了。
日期:当年格式为1/3,即当年1月3日,往年格式为10/1/3,2010年年1月3日。
证券ID输入如000905,代表厦门港务。
证券数量:按交易量输入,派息输入0。
单价:一般按实际交易量输入,派息和送股输入0。
印花税ID:买入(包括新股中签)输入00,卖出按默认值,不用输入即为01。
手续费ID:新股中签和配股输入:000,其余按默认值(本例是015,个人根据自己的情况设置默认值),虽然派息和送股手续费也是0,但由于单价是0,因此可以不理睬而按照默认值。
其它杂费:沪市二级市场过户费0.1元/百股,至少1元,派息为负数,其余为默认值0。
交易类型:买入(包括送配股)为1,卖出为-1,派息为0。
交易标记:默认值,若某只股票全部卖完,即去除勾(这一点极为重要,若数据很多,可点击证券ID上方的三角形文件筛选器,去除全选,再勾上所需证券代码即可迅速找到所需记录)。
备注:用于记录杂项信息,通常是派息送配股信息就足够,本例用来解释该表,平时一般不填。本字段安40个字节用来打字说明,其实实际应用仅20个足够了。

以上图片输入的数据并非实战,仅为了解释输入方法而已。
有一点强调一下,交易明细 表 中有3个字段来自其它3个表。如果你购买的股票未在 表 证券名称 中添加,你在交易明细 表 中的输入是无法被数据库其它对象所应用,也就是无效的。你必须先在 表 证券名称 中添加。同理,若新增手续费率,必须在 表 手续费 中添加,并在 表 交易明细 的该字段中修改默认值和有效性规则。 表 印花税 处理方式同 表 手续费 。
怎么样?数据的输入是不是十分简单,若是不满意,还可以创建窗体来输入,更为显得一目了然。创建窗体的方法是,点击 交易明细 表,然后点击 创建--窗体,稍作设计调整即可,这里不介绍了。
窗体.png
先看个图吧,后面在供下载的文件里提供一个窗体。
完整性规则.png
一个重要提示:输入数据后若对表进行修改,一旦涉及重要部分,关闭表时会出现如上图提示,若没有充分把握,请单击否,或者保存数据库副本,以免出现问题。

4.        数据已经输入。那么,如何访问呢?访问数据库应该用查询,可以对设计进行分类,筛选,达到自己的要求。我们可以进程需要的访问制成相应的查询,到时候只要点击鼠标,即可达到目的。
这个数据库其实很简单,只要做一个全面的证券交易明细查询,即可以此为基础,派生出多个所需的查询,因此,这个查询是最为关键,最为精致的一个查询。下面介绍如何制作证券交易明细查询:

查询0

查询0

点击 创建—查询设计,即可看到查询设计视图。右击—显示表,将4个表都添加,然后关闭显示表。
查询1.png
用鼠标拉入所需字段,也可以键入字段名,再在其下方用鼠标选择表。有些字段是计算字段,必须使用表达式。右击字段—选择生成器,然后输入表达式。由于这个问题解释起来很繁琐,因此直接提供表达式如上图。
[证券量: [交易明细]![证券数量]*[交易明细]![交易类型] :证券量是查询的字段名, [交易明细]![证券数量]*[交易明细]![交易类型] 表示交易明细表 中的这两个字段的乘积。
查询2.png
[证券量: [交易明细]![证券数量]*[交易明细]![交易类型] :证券量是查询的字段名, [交易明细]![证券数量]*[交易明细]![交易类型] 表示交易明细表 中的这两个字段的乘积。
查询3.png
手续费1: [价值]*[手续费]![手续费费率]:手续费1是个中间查询字段, 券商规定若手续费小于5元时按5元收费。真正的手续费反映在后面的手续费字段。
查询4.png
手续费: IIf([手续费1]>5 Or [手续费1]=0,[手续费1],5):这才是真正的手续费。
手续费: IIf 是个函数名,
手续费1]>5 Or [手续费1]=0 是条件,
手续费1 表示 满足条件,则手续费 就是本函数返回的值,
5 表示 若不满足条件,则 5就是本函数返回的值。
这样正好满足若按手续费率收取的手续费不足5元收5元的券商要求,手续费为 0 是新股认购、配股等,属于免手续费的。这一切都完美了。是不是?


最后按照自己的意愿调整字段顺序,然后转到数据视图看效果,调整列宽。若有显示格式不对的,例如总值等显示成小数的,可再回到设计视图,将该字段属性改成货币格式即可。

评分

参与人数 1威望 +5 贡献 +5 收起 理由
IsaacZ + 5 + 5 好帖!心血之作啊!

查看全部评分

62

威望

1万

金钱

344

贡献

高级会员

积分
14727
主题
67
回帖
1707
注册时间
2009-4-20
最后登录
2023-9-26
 楼主| 发表于 2011-1-17 23:02:15 | 显示全部楼层
本帖最后由 chnxn 于 2011-2-5 22:28 编辑

函数.png
貌似很复杂,列位看官请不要头晕。其实本人对Office的函数也不熟。只是明白必须找一个有附加条件的函数。点开表达式生成器,在里面找,数组、转换、日期、财务、算术等肯定不是,很快就在程序流程里找到iif,这个iff看上去就像,假如吗,就是一个条件,然后在帮助里搜索一下即有该函数的语法。

证券交易明细查询(库存).png
右击 证券交易明细查询, 选择复制,粘贴,改名,确定,打开设计视图,在 交易标记下方键入yes,保存,就增加了一个证券进行明细查询(库存)的查询了。
还可以创建如 库存证券、库存证券明细、库存证券总成本、已结证券盈亏明细、已结证券总盈亏 等查询。具体不介绍了,各位打开上传的查询,进入设计视图便知。
筛选1.png
筛选2.png
利用查询访问数据库十分简便。打开某个查询,点击某字段的筛选器,去掉全选,选中需要的项目,如昊华能源,即可看到所需股票的结果。若在设计视图中进行筛选,可以获得非常复杂的筛选结果。筛选后关闭查询时,会提示你十分保存改动,若想保持原设计不变,单击否便是。

查询还有更强大的功能,可以对数据进行整理,分类,更新,清除过期数据,整理数据库等等。这对于合同,学生等数据库意义较大,这里就不多提了。
查询同样可以制成窗体,个人觉得没什么意义。

数据库不同于其它文件,删除任何数据,任何对象,都是不可恢复的,没有什么回收站。重命名也是充满风险的,比如本数据库任何一个 表 的重命名将导致整个数据库的失灵,查询的重命名也可能出问题,一个查询重命名了,任何基于这个查询的对象将失灵,这一点请务必注意。

数据库可以导出为Excel文件,也可以从Excel导入成 表。Access 是Office 的组件,当然也可以制作报表,弄成饼图、柱状图什么的,不过个人认为那是单位宣传科的事,对我们来说,赚钱才是硬道理。是不是。以前在电脑爱好者看到一篇用Excel记录证券交易的文章和表格。跟Access 比,简直是小儿科。

自制股票交易数据库的缺点的无法接通股票软件的数据接口,但也避免了体积巨大臃肿速度缓慢的毛病。若要知道你库存股票的盈亏,只要将 库存证券总成本 和 你在券商户头的股票市值 比较一下即可分晓,一秒功夫。

数据库的事说完了,谈谈股市。股市如战场,知己知彼才能百战不殆。知彼即知庄家,很难,所以很难战胜庄家。但知己是比较可能做到的,这个数据库就能帮你做到知己。你可以知道,你的资金都在战场的哪一位置。如果你做到了知己,庄家要吞掉你就更难。你的资金就是你的兵,你要善于分配你的兵力,不要全体被庄家包了饺子。最后说一句老套的话:股市多有风险,入市后果自负。

上传的文件有4个,两个空数据库,供各位使用和修改,两个提供了实战数据,供研究数据库的使用。分别为Office 2007 版本和Office 2000版本。

附件仅供点拨论坛(积分满200分的)活跃会员下载,非点拨论坛会员不得下载附件!

此数据库费了我不少精力,现献给论坛朋友。若用得顺手,股市赚钱,别忘了给我加分哦!




游客,本帖隐藏的内容需要积分高于 200 才可浏览,您当前积分为 0
回复

使用道具 举报

62

威望

1万

金钱

344

贡献

高级会员

积分
14727
主题
67
回帖
1707
注册时间
2009-4-20
最后登录
2023-9-26
 楼主| 发表于 2011-1-17 23:02:37 | 显示全部楼层
本帖最后由 chnxn 于 2011-1-18 14:28 编辑

可以说已经写得非常详尽,一般的教程会略去许多细节,希望对各位有益。
比Excel稍微难一点,功能却强大许多。
花一点时间研究,定大有收益。
回复

使用道具 举报

0

威望

89

金钱

0

贡献

新手上路

积分
94
主题
0
回帖
13
注册时间
2011-1-17
最后登录
2018-10-28
发表于 2011-1-18 19:48:43 | 显示全部楼层
花一点时间研究,定大有收益。
回复

使用道具 举报

0

威望

73

金钱

0

贡献

新手上路

积分
75
主题
0
回帖
5
注册时间
2010-11-30
最后登录
2018-11-20
发表于 2011-2-5 21:11:09 | 显示全部楼层
好东西啊,可惜我现在已经退出股坛了。
不过这思路不错,ACCESS是个好东西。扩展开来,可以用到其它地方。
谢分享了,新年第一帖,顺祝新年快乐!
回复

使用道具 举报

0

威望

36

金钱

0

贡献

新手上路

积分
36
主题
0
回帖
3
注册时间
2011-2-14
最后登录
2011-2-14
发表于 2011-2-14 22:54:43 | 显示全部楼层
好东西!谢谢楼主分享好好学习
回复

使用道具 举报

0

威望

200

金钱

0

贡献

初级会员

积分
201
主题
0
回帖
78
注册时间
2011-2-17
最后登录
2011-2-17
发表于 2011-2-17 01:17:55 | 显示全部楼层
确实是神贴啊,特地来下载看看access怎么配置的
回复

使用道具 举报

62

威望

1万

金钱

344

贡献

高级会员

积分
14727
主题
67
回帖
1707
注册时间
2009-4-20
最后登录
2023-9-26
 楼主| 发表于 2011-4-7 10:20:33 | 显示全部楼层
本人在二楼贴图的那只股票已经向上突破。一年内的收益超过100%啊,真是不错:
昊华能源.png
回复

使用道具 举报

9328

威望

294

金钱

1万

贡献

管理员

自由的灵魂

积分
99869
主题
5265
回帖
26222
注册时间
2003-4-10
最后登录
2024-4-23
发表于 2011-4-7 15:06:14 | 显示全部楼层
恭喜恭喜!
回复

使用道具 举报

0

威望

97

金钱

2

贡献

新手上路

积分
105
主题
0
回帖
29
注册时间
2010-1-10
最后登录
2014-12-15
发表于 2011-4-7 15:44:29 | 显示全部楼层
楼主真的是在帮助别人的过程中丰富自己
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|点拨论坛

GMT+8, 2024-4-23 19:20 , Processed in 0.898870 second(s), 20 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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