财管家 首页
当前位置:主页>管家婆/报表打印> 文章内容

delphi7 里面怎么执行access里的宏?3x

发布时间:2011-01-05 | QQ免费站
1楼: 由于我在mdb里面的功能是用宏都做好了,但是现在要用delphi做一个界面,但是不知道怎么调里面的宏,各位有谁知道的?谢谢。高分送上。

2楼: 我参与讨论的一个问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3162650

看看这个有帮助没有

3楼: 谢谢chenybin,我没有找到和我的问题相关的内容.还是没有实现,有时间的话,请你帮我试一下吧.非常感谢.

4楼: 很简单,用下面这个:
uses ComObj;
//db:数据库名;pwd:密码
procedure RunMacro(const db, pwd: string);
var
ac: OleVariant;
begin
try
ac := CreateOleObject('Access.Application');
ac.OpenCurrentDatabase(db, False, pwd);
ac.DoCmd.RunMacro('宏名', 1, Null);
{如果你的宏包含在宏组中,这么写:
ac.DoCmd.RunMacro('宏组.宏名', 1, Null);}
ac.Quit;
finally
ac := Unassigned;
end;
end;
不过宏有个缺点,如果客户机上没装 Access 就没用了。如 管家婆辉煌版教程

5楼: 楼上的很详细了,马后炮一下,省得以后别人还去翻帮助了,重要部分都已经加粗了,后面两个参数使用NULL和EmptyParam都一样,甚至两个都可以不要,比如


ac.DoCmd.RunMacro('宏1');那就只会执行一次了
------------------------------

RunMacro 操作
使用 RunMacro 操作可以执行宏(宏:用来自动执行任务的一个操作或一组操作。)。该宏可以在宏组(宏组:共同存储在一个宏名下的相关宏的集合。该集合通常只作为一个宏引用。)中。

可在以下情况中使用该操作:

从某个宏中运行另一个宏。
根据一定条件运行宏。
将宏附加到自定义菜单命令中。
设置
RunMacro 操作具有以下参数:

操作参数 说明
[b]宏名[/b] 所要运行的宏的名称。在“宏”窗口中“操作参数”部分的“宏名”框中显示的是当前数据库中的所有宏(包括所有宏组)。[b]如果宏在宏组中,那么它将以 macrogroupname.macroname 列在列表中宏组名称下面。该参数是必需的。[/b]
如果在某个类库数据库中运行含有 RunMacro 操作的宏,Microsoft Access 将在该类库数据库中查找具有该名称的宏,而不是在当前数据库中查找。

[b]重复次数[/b] 宏运行次数的上限。如果将本参数留空(并且将“重复表达式”也留空),该宏将只运行一次。
[b]重复表达式[/b] 该表达式的计算结果为 True (-1) 或 False (0)。当表达式的值为 False 时宏将停止运行。每次宏运行的时候都将计算该表达式的值。

[b]说明[/b]
[b]如果为“宏名”参数输入的是宏组名称,Access 将运行宏组中的第一个宏[/b]。

该操作的效果和单击“工具”菜单上的“宏”(在其中可以选择和运行一个特定的宏)是一样的。不过,使用菜单中的命令只能运行宏一次,而 RunMacro 操作可以不受限制地多次运行宏。

[b]提示[/b] 可使用“重复次数”和“重复表达式”参数来决定宏运行的次数:

如果将两个参数都留空,则宏只运行一次。
如果为“重复次数”参数输入了某个数字,但将“重复表达式”参数留空,则宏将运行“重复次数”参数指定的次数。
如果为“重复表达式”参数输入了某个表达式,但将“重复次数”参数留空,则宏将运行至表达式值为 False 为止。
如果为两个参数都输入了值,则宏将运行由“重复次数”指定的次数或直至“重复表达式”的值为 False(取决于哪个参数先满足条件)。
如果运行一个含有 RunMacro 操作的宏时遇到了 RunMacro 操作,Access 将运行被调用的宏。该宏运行完以后,Access 将返回原来的宏继续执行下一个操作。

注意

可以调用在同一个宏组或别的宏组中的宏。
宏可以嵌套。也就是说,可运行宏 A,在宏 A 中可以调用宏 B,等等。在这种情况下,当运行完被调用的宏以后,Access 将返回原来的宏中继续执行下一个操作。
提示 可在宏组中用 RunMacro 操作来从自定义菜单中运行一个宏(该宏组为自定义菜单栏定义了自定义命令)。不过,用新的命令栏功能从菜单栏、工具栏或快捷菜单运行宏将更容易。在“视图”菜单上,指向“工具栏”,单击“自定义”可显示“自定义”对话框。在对话框的“工具栏”选项卡上,选择要从中运行宏的菜单栏、工具栏或快捷菜单。在“命令”选项卡上,单击“类别”框中的“所有宏”,然后在“命令”框中选择要运行的宏并将其拖至相应的菜单栏、工具栏或快捷菜单中。在菜单栏、工具栏或快捷菜单上单击该宏的图标时,Access 将运行该宏。另外,还可从“数据库”窗口将宏拖至菜单栏或工具栏上,Access 会创建运行该宏的图标。

若要在 Visual Basic 中运行 RunMacro 操作,可使用 DoCmd 对象的 RunMacro 方法。

6楼: 非常感激.散分.



上一篇:一个很奇怪的问题   下一篇:没有了