如何将 MS-access UI 与 .Net Web 环境集成

Posted

技术标签:

【中文标题】如何将 MS-access UI 与 .Net Web 环境集成【英文标题】:How can I integrate MS-access UI with .Net web environment 【发布时间】:2011-04-18 06:15:50 【问题描述】:

我们有一个遗留软件,它内置在 MS-Access (UI) 中,但使用 Sqlserver 2005 作为数据库服务器。 Ms-Access 中的 UI 具有包含不同菜单项的菜单。但是一些菜单项还没有屏幕(不完整)。所以我们现在决定迁移到 .net 环境(即 .net Web 应用程序)。这是我的主要问题。

首先,我想开始处理 .net(.net Web 应用程序)中的屏幕,这些屏幕对于 MS-Access 中的菜单项来说是不完整的。其次,我将完成现在在 MS-Access UI 中工作的其他屏幕。那么,当用户单击 MS-Access UI 中的菜单项时,我如何使用/调用 .net Web 应用程序屏幕。

请给我建议。

谢谢

【问题讨论】:

【参考方案1】:

将 Access 中内置的屏幕与某些基于 Web 的表单集成起来并不实际。我不确定为什么或谁或向您建议过这种方法在我们的行业中使用过。

您当然可以启动任何 Web 表单或网站,或者启动在您桌面上运行的 Access 客户端的任何 URL。启动该 URL 的代码是:

Application.FollowHyperlink "path to web form or site goes here"

因此,您可以在 Access 表单中放置一个按钮或菜单来启动 Web 表单,或者如果您愿意,甚至可以启动 eBay。但是,我认为问题(或解决方案)不是启动某些 Web 表单的能力,而是让应用程序的某些部分相互通信。

应用程序变得有用,因为所有应用程序部分都可以紧密地相互通信。 Access 是一个很棒的 RAD 工具,因为它可以很容易地启动一个报表或另一个表单并传递信息。所有这些应用程序都可以轻松共享通用代码和例程,让您完成有用的业务任务。

因此,当您单击 Access 数据网格(继续表单)中的详细信息行时,启动另一个表单来编辑一条记录需要一行代码。因此,应用程序绝不只是用于编辑数据的单个独立表单,而是表单之间的对话和代码的使用以及这些对象如何一起跳舞才是真正使应用程序有用的原因。如果一个应用程序只是没有代码的表单,那么我认为我们将在这个行业中失业。

导航和构建 Web 应用程序的模型与 Access 的工作方式完全不同。我的意思是,如果您打开了 5 个浏览器,哪个浏览器有某种形式来编辑您的数据,哪个浏览器正在观看 YouTube 上的视频?

您真的无法接近这样一个半生不熟的系统,其中某些表单位于 Access 中,而应用程序的某些部分是基于 Web 的。唯一可行的方法是 Web 表单不需要使用或使用客户端表单中的任何代码。

但是,您可以在 Access 2010 中构建 Web 表单。换句话说,在 Access 客户端中,您可以构建客户端表单和 Web 表单。客户端表单可以调用和使用 Web 表单(它们在客户端中运行)作为常规表单,并且诸如 where 子句等将起作用)。当您发布到网络时,只有网络表单运行。这是我的一个访问应用程序的视频,并注意在中途我如何在网络浏览器中运行相同的表单:

http://www.youtube.com/watch?v=AU4mH0jPntI

但是,Access 中的上述功能目前无法与 sql server 一起使用,必须使用 SharePoint(或即将推出的 office 365)。

因此,毫无疑问,将应用程序中的位和部分移动到基于 Web 的概念是有道理的(因此,您不将所有应用程序移到 Web 的概念是有道理的)。但是,移出到 Web 的部分必须作为 Web 或独立的有意义,并且不需要与客户端表单集成(至少在使用期间)。

换句话说,如果您现在在 Access 中有一个旧的工资系统,但希望员工输入他们的工资小时数,那么新的 Web 部件与工资系统是分开的。毫无疑问,工资系统可能会从基于 Web 的新员工工时输入系统中提取和提取工时。

但是,基于客户端的应用程序的菜单和部分将无缝启动和使用 Web 浏览器部分的想法完全没有意义。这又是零意义,你在这里叫错了树。如前所述,如果 Web 部件确实是一个单独的业务流程,那么这里有一些可能性。

最后但同样重要的是,您当然可以在 .net 网站上构建一组 Web 服务(应用程序业务代码和与 UI 分离的逻辑)。然后,Access 客户端表单和 Web 表单都可以使用这个单独的业务层。但是,这样的设置可能再次表明您最好将应用程序构建为基于 Web 的应用程序,因为基于 Web 的表单可以更轻松地交谈和使用业务代码,然后客户端表单可以 - 唯一的例外是如果您使用访问 Web 服务,然后 Web 或客户端表单都可以使用您编写的存储过程和业务例程来运行服务器端。

最后但并非最不重要的一点是,也许您的问题可以通过增加连接性来解决,而不是真的需要基于网络?我在我的以下文章中解决了这个问题。

http://www.kallal.ca/Toweb/Index.html

【讨论】:

嗨 Albert D. Kallal。首先,我感谢您对这个主题的描述性回答。我知道这是一种不好的做法。但由于时间限制,我们希望先设计 Web 表单并从 MS-Access 使用它们,同时开发成熟的 Web 应用程序。 此应用程序仅供内部使用。因此,Web 应用程序将仅用作 Intranet 应用程序。正如我所说,而不是构建新屏幕并在 VBA 中编写代码以供访问。我们希望在实现首先创建 web 表单并从访问中获取它们时做同样的事情。这些 webforms 数据直接在 Sqlserver 2005 上更新。在我们为 Access UI 中的那些不完整菜单创建新的 web 表单之后。我们将为所有正在运行的菜单重新启动一个新的 Web 应用程序(利用已创建的 Web 表单) 是的,我想从 MS-access 启动的 Web 部件现在不需要任何集成。但是在阅读了您关于集成/不集成的答案后,我现在在想,使用 Web 服务对我来说很有意义 - 或者 - 通过构建 Web 表单并在其中使用它们来使用 Access 2010 -(我们的应用程序实际上在 Access 2007 上运行)谢谢非常感谢您对我的问题的长时间回答,我会遵循您的建议,如果我遇到任何困难,我会毫不犹豫地接受您的帮助再次非常感谢您!!!!

以上是关于如何将 MS-access UI 与 .Net Web 环境集成的主要内容,如果未能解决你的问题,请参考以下文章

如何将 VBA 迁移到 asp.net

如何使用 asp.net 从客户端读取 ms-access 数据库文件

寻求代码设计建议:使用 VB.Net 和 Ms-Access

如何在 VB.net 中使用 ROWNUM 从 MS-Access 数据库中检索数据

如何在 C# 中更新或刷新与 Ms-access 连接的数据网格视图

使用 asp.net、vb.net 和 ms-access 的时间戳