可以在Access 2003中创建存储过程或函数?

时间:2011-04-15 08:05:03

标签: ms-access stored-procedures

在Access 2003中,我们可以创建存储过程或函数吗?

2 个答案:

答案 0 :(得分:2)

不是"存储过程"因此。您可以创建已保存的查询,并以与存储过程形式Sql Server相同的方式从Access调用这些查询。保存的查询具有的限制是您无法使用流代码控制(例如If Else或Case When),并且您一次只能保存一个命令。

创建已保存查询的最简单方法是打开Access,转到“查询”选项卡并在“设计视图”中创建新查询。关闭“显示表”对话框并切换到“SQL视图”。使用上面的示例,键入SQL子句的第一部分:

    INSERT INTO Addresses ( Organisationname, AddressLine1, AddressLine2,
    AddressLine3, City, StateCounty, CountryID, PostCodeZip, SwitchboardNo,
    FaxNo, Email, Website, RecordStatus, LastUpdated, LastUpdateBy )
    Values

现在打开括号并创建参数占位符。它们总是在方括号([])中,它告诉Access期望一个值作为参数。你可以把任何你喜欢的东西放在方括号内。 [p1],[p2],[p3]等是我的选择,所以最终查询将如下所示:

    INSERT INTO Addresses ( Organisationname, AddressLine1, AddressLine2,
    AddressLine3, City, StateCounty,CountryID, PostCodeZip, SwitchboardNo, FaxNo, 
    Email, Website, RecordStatus, LastUpdated, LastUpdateBy ) Values ([p1],[p2],[p3],
    [p4],[p5],[p6],[p7],[p8],[p9],[p10],[p11],[p12], [p13],[p14],[p15]);

如果运行查询,Access将提示您输入每个字段的输入。输入每个字段的数据以测试查询是否正常工作。至于调试,你刚刚完成了它。将查询保存为有意义的内容。这个保存为qUpdateAddresses。保存时,您可能会注意到Access会自动检测到这是一个追加查询。确认无效后,请关闭数据库。

从ASP.NET运行它,看看这篇文章,注意那些结束的方向" Saved Queries":      http://www.mikesdotnetting.com/Article.aspx?ArticleID=26

答案 1 :(得分:2)

对于Access 2003,答案是否定的。

Access 2010确实有表触发器和存储过程。这些是由于行更新而运行的真实引擎级例程。因此,导致行修改的表单或VBA记录集代码或sql更新将导致存储过程和表级代码运行。实际上,即使是通过ODBC从vb.net或甚至VB6进行的外部连接也会导致这些存储过程运行。

但是,在Access 2010之前,如果使用默认数据库引擎,则没有存储过程。但是,您可以为Access应用程序选择不同的数据引擎然后选择JET,当您执行此操作时,可以使用存储过程,但是您必须使用随选择用于Access的任何数据库引擎附带的工具。因此,请记住,就像您构建网站一样,您可以出去选择您使用的数据库引擎。对于ms-access也是如此,您可以自由选择具有与Access一起使用的存储过程的数据库引擎。

如上所述,例外情况是Access 2010现在具有表级触发器和存储过程。