Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

学习平台笔记-修改窗体的代码编写流程

时 间:2010-05-06 11:33:35
作 者:lulincn   ID:11179  城市:泰州
摘 要:修改窗的代码编写
正 文:

1、将新增窗体文件frm**_child_add复制为修改为窗体 frm**_child_edit,删除原来的代码,修改每一个字段的控件来源

2、定位要修改的记录:

      1) 创建一个模块存放变量,模块名variable,在模块里定义一个变量名: public selectstr As String .  用selectstr变量存放要修改的记录ID 

           在模块里面定义的变量是不是叫全局变量?

     2)通过表里面的 “获得焦点” 事件 当获得焦点时完成三件事

                         将记录ID(关键字段的值)赋给变量 selectstr   :   selectstr=me.**ID

                         给froms!usysfrmmain!labfind.tag 赋值1, 使查询窗件可以被打开

                         给froms!usysfrmmain!btnedit.tag 赋值999(大于1),使修改窗体可以被打开

                                                  疑问:这里有on error 语句,这里什么情况下才会出错呢?如果不会出错,要这个on error语句有什么用呢?

      3) 在修改窗体中获得要修改的记录: 在加载事件中   me.recordsource="select * from tbl** where **id='"&selectstr&"'"

3、完成记录的修改:单击cmdok时:  判断必填项是否为空---刷新--重新加载子窗体--设置计时器=300--触发记时器事件(定位刚才修改的记录)

关于记时器触发事件:    

 泰州--大路(80987830)  11:42:24
                   窗体计时器,这东西有什么作用?
     UMVsoft-刘师义(896200327)  11:43:13
                 定时触发事件
    UMVsoft-褚玉春(20099004)
  11:43:27
            一般理解是触发事件生成时间  你做的这里300毫秒就是代表你按下按钮  0.3秒就打开相应的窗体等
    UMVsoft-刘师义(896200327)  11:43:33
             如果事件过程中有代码就会定时执行
    泰州--大路(80987830)  11:57:58
                forms!usysfrmmain!frmchild.form.timerinterval=300
               docmd.close acform,me.name
                意思就是等0.3秒后,关闭窗体。(X
    UMVsoft-刘师义(896200327)  12:16:03
                    不是把主窗体中的数据表视图子窗体的计时器开启,然后关闭当前窗体
泰州--大路(80987830)  14:04:00
                     那么,开启该窗体的计时器做什么用的呢?
UMVsoft-刘师义(896200327)  14:06:43
                    该窗体的计时器事件会自动定位相应记录
泰州--大路(80987830)  14:13:22
                      懂了。

关于全局变量
泰州--大路(80987830)  14:27:50
                 为了定位记录,在做修改子窗体的时候设置了个公共变量,一个是selectstr , 一个是g_CurrentSelectstrid,我认为第二个没必要设置,就用selectstr就可以了,是不是这样?
                 如果不是,那么selectstr的值是不是在什么地方改变了?
UMVsoft-钱玉炜(64898680)  14:28:10
                必须2个
UMVsoft-钱玉炜(64898680)  14:28:42
                        因为在修改过后刷新数据的时候是通过重新加载窗体来实现的,第一个变量值会改变
泰州--大路(80987830)  14:29:44
              嗯,加载的时候触发了加载事件。值就改变了。
泰州--大路(80987830)  14:30:12
                不对。
泰州--大路(80987830)  14:30:24
                  那是通过焦后事件获得的值。
泰州--大路(80987830)  14:30:28
               焦点。
UMVsoft-钱玉炜(64898680)  14:30:47
                        打开窗体焦点就立刻设置在第一个控件上了
UMVsoft-钱玉炜(64898680)  14:30:59
                     导致变量值会变成第一个编号的值
泰州--大路(80987830)  14:32:19
              嗯。研究一下,更清晰了。

 

张志  13:19:05
关于全局变量,你看一下文章《VBA基础06]Public语句-定义全局变量》http://www.accessoft.com/downshow.asp?ID=37
大路  14:49:47
全局变量都要放在一个共用的模块中定义的对吧。做过修改窗体的定位和返回定位后,全局变量基本就懂了。




Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助