[英]how to export Access 2010 data macros
我需要将Access数据宏从我的测试数据库传输到我的生产数据库。 有谁知道怎么做?
我知道将表从一个accdb转移到另一个accdb也会传输数据宏,但在我的情况下这不是一个选项。 我也知道我可以在生产accdb中手动重新创建它们,但这使我容易出错,并且需要将生产数据库关闭的时间比脚本传输方案要长。
如果我不得不这样做一次就不会那么大,但我需要在开发项目的过程中多次这样做。
我已经尝试将表导出到xml,但不包括数据宏。
请注意,我在这里询问Access 2010 数据宏 ,而不是常规的Access宏。
您可能想尝试一对未记录的VBA函数
出口:
SaveAsText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml"
要导入:
LoadFromText acTableDataMacro, "TableName", "C:\PathToFile\DataMacro.xml"
为了扩展Martijn Pieters的/ Lanik的答案(感谢Martijn和Lanik),我需要在28个不同的表上创建几乎相同的数据宏,每个表都有AfterInsert,AfterUpdate,AfterDelete和命名数据宏。 所以,我使用了SaveAsText命令
SaveAsText acTableDataMacro,“TableName”,“C:\\ PathToFile \\ DataMacro.xml”
创建一个模板,然后使用该模板通过一个小的vba代码创建28 xml文件,替换表名,主键等。我还创建了28个LoadFromText命令。 然后,我可以使用LoadFromText命令一次加载所有宏,并使用可重复的过程。 现在我已经完成了测试,我可以通过这种方式快速更新生产数据库,或者轻松地将相同的数据宏添加到其他表中。
所以其他人都知道,LoadFromText会覆盖任何以前的宏,这非常棒,因为我第一次尝试时没有正确的模板。
鉴于上述情况,下一步是让“updater”数据库应用程序使用DoCmd.TransferDatabase命令将带有函数/ sub的模块与所有LoadFromText命令一起传输到Data .accdb。 它还应该传输一个宏来运行函数/ sub。 我尝试使用我的更新程序然后执行宏来加载数据宏,但访问安全性阻止了这一点。 所以,您可能需要让用户打开数据库并启用它,然后运行宏。 如果我们可以直接编辑数据宏,那么这会更复杂,但确实提供了解决问题的解决方法。
我在这里没有很好的答案。
但是,在过去,我经常制作一个表格更改的“日志”,然后在网站上简单地使用它。
请注意,您可以剪切+粘贴宏代码。 代码保存为XML。
例如,此更新后的表触发器在Access中如下所示:
如果你剪掉上面的(ctrl-a,ctrl-cc),,那么你可以将它粘贴到记事本中。 事实上你甚至可以在visual studio或任何xml编辑器中粘贴/打开它,你会看到:
所以你可以剪切+粘贴这些宏。
如上所述,因此在过去我经常记录变化的“日志”。
因此,如果我在网站外工作,我修改了2个代码模块,4个表单和2个报告,那么我有一些变化记录。 我会在这张表中输入更改的对象。
当我到达现场时,我快速浏览一下该表,我知道要导入3-5个对象,这样的导入仅需几分钟。
但是,使用表触发器和存储过程,您可以拥有更多只需要复制的内容。
我会做两件事之一:
使用日志的想法和
a)取消发布开发版本并将其带到您的工作现场。 然后导入新的表单,报告等。对于触发器代码,您可以在两个应用程序之间剪切+粘贴。
b)当您对触发器进行更改时,然后剪切+粘贴到记事本文档中并将它们放在目录中。 在现场时,只需将每个记事本,剪切+粘贴到生产中,然后将记事本项目移动或复制到“完成”文件夹中。
以上肯定不太理想。 然后在过去我并不总是有代码来编写表格更改脚本,并使用一个小的日志表工作得很好。
所以在过去我经常写下这样的表格已被修改,我必须添加这样的专栏。
所以你真的可以选择是否要将宏代码作为xml剪切+粘贴到单独的小文档中,或者从开发中剪切+粘贴到生产中。
我认为如果您在不同的位置工作,那么我认为最好取消发布开发版本,并随身携带(我假设您知道/重新确定您可以制作未发布的Web应用程序副本) 。
因此,表单,代码模块,宏等可以很容易地导入(您删除表单等,只从该未发布的副本导入)。
但是,对于表格代码? 您必须一次从未发布的副本中剪切+粘贴到某个临时区域,或者在应用程序之间剪切+粘贴。
存储文本可能在这里工作,但我还没有时间做出更好的解决方案。
编辑:顺便说一句,在上面我假设了一个Web服务数据库,但该建议仍然适用于非Web Access数据库。
我有同样的问题,无法找到正确的宏,以便以xml格式导出。 但是我能够右键单击我的查询并以这种方式导出到xml,所以我知道它是可能的。
但是我希望它从按钮运行,我发现了一种简单的方法,无需编写任何vba代码。
首先需要手动导出表或查询,方法是右键单击表或查询并选择export并选择xml作为文件类型。 最后,您可以保存导出步骤,只需勾选该框以保存步骤并为导出步骤指定相应的名称。 完成此操作后,您可以使用RunSavedImportExport操作通过宏运行导出步骤。 只需选择手动导出时创建的已保存导出的名称。 任务完成。 希望这有助于其他人。
右键单击宏并选择“ Export
,然后选择要接收宏的数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.