ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 16477|回复: 9

[已解决] 关于Access创建窗体后在窗体添加数据到表的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-5 16:11 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 psunui 于 2012-12-5 21:40 编辑

感觉excel不是很够用,用Access做了个小数据库,下载了几个示例,好象是在窗体添加或更改数据不会
即时将更改保存到表,现在自己做的是只要窗体有更改,表里的内容会跟着变。
现在想在窗体上添加个保存按钮,更改数据后点击保存后再将数据更改保存到表,如果不点保存则表中的数据不变,
不知道这个是怎么设置的,麻烦哪位高手指点一下,不胜感激。

TA的精华主题

TA的得分主题

发表于 2012-12-5 16:42 | 显示全部楼层
大概思路是把窗体的记录源删掉,再在控件里添加代码保存.本人也较菜,详细的另请高手解答

TA的精华主题

TA的得分主题

发表于 2012-12-5 17:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主,这个对你我来说都很难。用Access很少人这么用的,太麻烦,非常麻烦,没必要。
能实现这个的,肯定是高手了。变通的方法,就是编辑临时表,然后再把临时表的内容更新到正式表。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-5 17:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
402854992 发表于 2012-12-5 16:42
大概思路是把窗体的记录源删掉,再在控件里添加代码保存.本人也较菜,详细的另请高手解答

非常感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-5 17:55 | 显示全部楼层
本帖最后由 psunui 于 2012-12-5 17:56 编辑
shepdog 发表于 2012-12-5 17:20
楼主,这个对你我来说都很难。用Access很少人这么用的,太麻烦,非常麻烦,没必要。
能实现这个的,肯定是 ...

呃,这么说吧,我想要的效果大概就是:在窗体上加个保存按钮,输入后数据后不点按钮,表中的数据就不会变,点了保存后才写到表里。
主要是怕有时候不小心输错不至于把错误数据存到表里。毕竟像订单号之类的数据或主键什么的一输入到表里就不能改了。
不管是临时表也好,还是用VBA,达到这个目的就可以。

TA的精华主题

TA的得分主题

发表于 2012-12-5 20:51 | 显示全部楼层
本帖最后由 shepdog 于 2012-12-5 21:05 编辑
psunui 发表于 2012-12-5 17:55
呃,这么说吧,我想要的效果大概就是:在窗体上加个保存按钮,输入后数据后不点按钮,表中的数据就不会变 ...

用按钮保存的方法,叫非绑定窗体,大概的步骤是:
1.建立绑定窗体,然后把窗体控件的数据源删掉,使之成为非绑定窗体。窗体试用纵栏式,不能使用数据表试
2.在窗体的“打开”事件中,编写VBA代码,调入数据源作为ADO.Recrodset,并把recordset的数据赋值给非绑定控件;
3.在窗体设置导航按钮,使非绑定控件的值按recordset的记录变化。
4.在“保存”按钮编写VBA代码,使非绑定控件的值保存到表中。

以上方法,我觉得没必要。对于你从Excel转过来的水平,恐怕不好写。
其实按你的目的,临时表也没多大必要,你应该重视的是对数据的逻辑性检查:在记录的更新前或更新后事件中,编写代码,用VBA语句检测值的有效性!
主键也是可以改的吧,至于不允许改,可以设置事件VBA代码,使这个字段无法获得焦点。
比如,在字段的“获得焦点”事件中,把焦点转移到可以修改的字段,例如不允许改A字段,要把焦点移到B字段,可以用
me.B.setfoucus
实现焦点转移
不允许更改,也可以在“更新前”事件中,用if设置判断条件,当更改不合法时,VBA代码设置:
cancel=true
'提示不允许更改
msgbox “该字段不允许更改”

TA的精华主题

TA的得分主题

发表于 2012-12-5 21:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
另外,楼主能不能把你的找到的几个示例发上来?我也想看看别人是怎么做非绑定窗体的。

楼主自己的数据库也可以发上来吧,需要的话可以帮你写一些代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-5 21:12 | 显示全部楼层
shepdog 发表于 2012-12-5 20:51
用按钮保存的方法,叫非绑定窗体,大概的步骤是:
1.建立绑定窗体,然后把窗体控件的数据源删掉,使之成 ...

还是非常感谢,话说也知道自己水平不怎么样,尽量找相对简单的解决方案吧。
主要是因为一些小问题暂时没想到什么好办法避免,
比如打开产品窗口查看产品,不小心把产品名称删掉一个字,一般不会注意到;
或者添加一个新订单,打开窗口输入一部分后又发现不用添加了,随手关掉。
这种情况肯定是非常频繁的,虽然主观上不想更改数据,但事实上已经写到表里了。
又不方便直接设置锁定完全禁止更改,如果每次注意或事后发现再改回来工作量实在是太大,
现在就是想避免掉这些容易出错的情况。

TA的精华主题

TA的得分主题

发表于 2012-12-5 21:19 | 显示全部楼层
晕,楼主一开始表述就不清晰。楼主是省事了
那你在查看数据的窗体,锁定不许编辑,如果要编辑,再开另一个允许编辑的窗体就可以了。

楼主找的示例呢?发上来吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-5 21:26 | 显示全部楼层
shepdog 发表于 2012-12-5 21:09
另外,楼主能不能把你的找到的几个示例发上来?我也想看看别人是怎么做非绑定窗体的。

楼主自己的数据库 ...

嗯,在做的是一个进销存,那些现成软件毕竟不太合适。因为要考虑整个系统的流程,
搞了很久才确定下表的结构来,目前刚刚打算把窗体搭起来。
至于示例,不知道你是什么版本,我用的是10版,是07的格式,主要还是参考新版的罗斯文,
个人觉得这个基本上已经非常完全了,可惜就是VBA方面只能看懂个大概。
不过今天刚刚找到一个好东西,我估计是用不上了,可能你能看得懂。
你发个邮箱地址,我目前只能发300K的附件,还是打包发给你省事一点,要是传估计概几十个了。
{:soso_e136:}{:soso_e136:}{:soso_e136:}
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-5 12:22 , Processed in 0.024567 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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