设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: hgt
打印 上一主题 下一主题

ADP 太烂。

[复制链接]
21#
发表于 2004-10-2 05:26:00 | 只看该作者
不要搞得这个复杂,用TSQL语法写自定义函数不是一样吗?[em01]
22#
 楼主| 发表于 2004-10-8 18:04:00 | 只看该作者
几个难关突破了,原来ADP 是很好用的,只不过没有 MDB 那么灵活。
23#
发表于 2004-10-9 03:37:00 | 只看该作者

回复:(hgt)ADP 太烂。

嘿嘿,知道就好了。其实ADP的确是好东西。等我的软件完成之后,我再给大家一看ADP的风采!!



本帖子中包含更多资源

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

x
24#
 楼主| 发表于 2004-10-9 17:22:00 | 只看该作者
有个人找我说不要用ADP了,用VB + SQL2000 吧,我知道lwwvb以前用 VB 的,现在转用ADP,能否说说原因?
25#
发表于 2004-10-9 20:18:00 | 只看该作者
你如果用VB的话,你就会发现。想做一个数据表,当中使用下拉列表,这么简单的功能也需要第三方控件,而且第三方控件的输入数据时又十分的不顺手,的确很痛苦。自己做控件?又没有这个时间。还有,VB的窗体没有数据窗体的概念,你操作数据时,你会发现十分麻烦,连个默认值的设定都要写代码。又没有数据感知功能,很多地方都要加上在ACCESS中就不必要的功能。如果要用VB,不如看看DELPHI更好,DELPHI可以用更好的第三方数据库控件,当遇到你要非要写重用数据模块时,DELPHI的真正面向对象编程会使你编得更方便。也可以看看POWERBUILDER 9,和ACCESS也是数据库的RD工具。但我认为你如果不是做专业开发,不要太花时间在这些上面了。[em01]
26#
 楼主| 发表于 2004-10-27 08:15:00 | 只看该作者
ADP 的窗体太烂了, 但写存储过程和函数又太强大了, 放弃又不舍得,只好用 ADP 写存储过程和函数, 用 .NET 写窗体和报表. [em07]
27#
 楼主| 发表于 2004-10-27 08:47:00 | 只看该作者
更换 ADP 窗体记录源:[em07]



可以用 SQL语句,视图,存储过程,函数。作为窗体“记录源”。

用 VBA 代码改变“记录源”和“输入参数”的注意事项:

清空“输入参数”不能用 NULL,应该用“”空字符串,效果:如果“存储过程”或“函数”有参数默认值,

窗体按“存储过程”或“函数”默认值显示,不会弹出对话框。

Me.出货单分析子窗体1.Form.InputParameters = ""

用有参数的“存储过程”或“函数”赋值到“记录源”,效果:如果“输入参数”为空,窗体按默认值显示,不会弹出对话框。

Me.子窗体.Form.RecordSource = "dbo.存储过程"

赋值“输入参数”一定要指明数据类型,不能用“Me.控件”方式,应该直接用“控件名”或绝对位置名称“Forms!窗体!控件”,

效果:如果参数没有错,立即按参数显示数据记录。如果参数不匹配,会弹出错误提示。

Me.子窗体.Form.InputParameters = "@是否 bit = Forms!窗体!Check, @ID int = Forms!窗体!Text"

换“记录源”的完整方法:

1,“存储过程”或“函数”的参数一定要有默认值,就不会弹出对话框。最好按默认值显示没有记录,减少窗体闪动次数,减少SQL服务器负担。

2,清空“输入参数”。 显示没有记录

3,赋值“记录源”。 显示没有记录

4,赋值“输入参数”。 立即按参数的要求显示记录。

在参数引用的控件的值改变后,用事件过程擦新子窗体或数据表记录:

Me.子窗体.Requery

[此贴子已经被作者于2004-10-27 0:52:11编辑过]

28#
 楼主| 发表于 2004-10-27 16:55:00 | 只看该作者




[此贴子已经被作者于2004-10-27 9:00:10编辑过]

本帖子中包含更多资源

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

x
29#
 楼主| 发表于 2004-10-27 17:14:00 | 只看该作者
ADP 中打印当前窗体内容在 MDB 中报表数据来源于查询,查询中的条件引用窗体控件,运行一下,显示什么就打印什么。用一个按键调用报表就 OK。但在 ADP 报表中,用不了 MDB 的方法,ADP报表数据来源必须使用有参数的“存储过程”或“函数”。1,在报表的“记录源”填“存储过程”或“函数”的名字。

   在“输入参数”引用要打印的窗体控件或者字段名,最好用绝对位置,参数后要指定数据类型。

   如:@参数1 int = Forms!窗体!文本框, @参数2 bit = Forms!窗体!复选框

   用按键事件打开报表2,在 VBA 代码中调用有参数的“存储过程”或“函数”,

   将结果集赋值给报表的“Recordset”

   用代码打开报表。
30#
 楼主| 发表于 2004-10-30 03:32:00 | 只看该作者
ADP窗体和ADO事件中,没有删除记录后触发的事件,可以用做标记方法解决。1,在窗体放一个“复选框”,默认值设置为“False”,作为全局变量标记。2,在窗体事件“确认删除后”写代码,将“复选框”的值改为“True”,代表删除就要开始了。3,删除记录完成后,光标会指到数据表的第一个控件,触发控件“进入”,“获得焦点”,“成为当前”的事件,4,可以在控件“进入”事件中判断“复选框”,如果是“True”,就是我们需要发生的事件,做动作前先将“复选框”改为“False”避免 后面 的动作异常终止,做成死循环。5,比如,用“Recalc”或者“Requery”会循环触发“进入”事件,会造成死循环,就要用 If 判断“复选框”,让他只计算一次。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-10 06:25 , Processed in 0.091243 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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