我们有一个遗留软件,它是在MS-Access(UI)中构建的,但是使用Sqlserver 2005作为数据库服务器。
Ms-Access中的UI具有不同菜单项的菜单。但是有些菜单项还没有屏幕(不完整)。所以我们现在决定转移到.net环境(即.net web应用程序)。这是我的主要问题。
首先,我想开始处理.net(.net web应用程序)中的屏幕,这些屏幕对于MS-Access中的菜单项是不完整的。其次,我将完成现在在MS-Access UI中工作的其他屏幕。因此,当用户点击MS-Access UI中的菜单项时,如何使用/调用.net Web应用程序屏幕。
请建议我。
由于
答案 0 :(得分:3)
将Access内置的屏幕与某些基于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子句之类的东西可以工作)。当您发布到Web时,只运行Web表单。这是我的访问应用程序的视频,并注意在中途点如何在Web浏览器中运行相同的表单:
http://www.youtube.com/watch?v=AU4mH0jPntI
但是,Access中的上述功能现在无法与sql server一起使用,并且必须使用SharePoint(或即将推出的Office 365)。
毫无疑问,将应用程序中的位和部件移动到基于Web的概念是有意义的(因此,不将所有应用程序移动到Web上的概念是有意义的)。但是,移出到网络的部件必须有意义,不论是网络还是独立,不需要与客户端表单集成(至少在使用过程中)。
换句话说,如果您现在在Access中有遗留工资核算系统,但希望员工输入其工资核算小时数,那么新的Web部件将与工资核算系统分开。毫无疑问,薪资系统可以从基于网络的新员工小时录入系统中抽取时间。
然而,基于客户端的应用程序的菜单和部分将无缝启动和使用Web浏览器部分的想法完全没有意义。再次这没有任何意义,你在这里咆哮错误的树。如上所述,如果Web部件实际上是一个单独的业务流程,那么这里有一些可能性。
最后但并非最不重要的是,您当然可以在.net网站上构建一组Web服务(应用程序业务代码和与UI分离的逻辑)。然后,Access客户端表单和Web表单都可以使用此单独的业务层。然而,这样的设置可能再次表明您最好将应用程序构建为基于Web的应用程序,因为基于Web的表单可以更轻松地交谈和使用业务代码,然后客户端表单可以 - 只有在这里再次例外是如果您使用访问Web服务,然后Web或客户端表单都可以使用您编写的存储过程和业务例程来运行服务器端。
最后但同样重要的是,也许你的问题可以通过增加连接来解决,而不是真正需要基于网络的?我在下面的文章中提到了这个问题。