我开发了一个功能齐全的两部分(前端和后端)Microsoft Access数据库,用于Microsoft Windows,并希望进一步扩展它的功能,以便外部客户端可以直接提交自己的数据我的数据表无需先发送给我,以便我可以手动输入。
系统的前端本地存在于每个最终用户(不在我的LAN上),后端存在于我的LAN中。
问题在于我不知道如何做到这一点,并希望得到一些建议。
这就是我希望它的工作方式:
1. Client (external / not on my LAN) enters data into form
2. Client presses "Submit"
3. Data is entered directly into my data table (internal / my LAN)
我还需要遵循一些要求:
另请注意以下事项:
答案 0 :(得分:1)
要获取公司网络中的数据,那么这些桌面将需要使用您的网络。当他们点击提交时,该数据必须发送到您现有的数据库,这意味着您需要打开您的网络到野外互联网。很少有公司(如果有的话)允许在全国各地的人们计算机上运行的桌面程序使用+打开并修改现有网络上的文件(这是黑客实现的梦想!)。 因此,虽然可以为这些桌面打开公司网络以修改您的访问数据库,但这将是一个安全噩梦,并且不切实际。还不清楚你是否能够(或想要)设置这些外部计算机远程访问公司网络,或者你只是谈论Access数据库的几乎“任何”旧用户需要这种能力?
如果我们谈论您信任的员工,那么您的公司网络可以通过安全连接(VPN)打开到外部连接。
如果您谈论应用程序的客户和一般用户,那么允许这些人连接并使用您的公司网络将是不可能的。
所以你所要求的可能是可能的,但从安全的角度来看并不实用(这就是为什么你试图制作一个与现有的其他应用程序不兼容的应用程序)。因此,尝试做其他人没有完成的事情往往是一个非常糟糕的主意。
在点击提交和修改数据库(在本地网络上)时,另一个可能的解决方案将取代用户,您可以让他们的应用程序将数据发送到某个网站(这是大多数此类应用程序的工作方式)。因此,您可以将数据以XML或其他格式推送到网站。然后,让您的公司网络内的桌面每天多次下载这些新数据。这再次消除了将公司网络打开到外部连接的需要。
另一种方法是,在用户输入数据后,您可以将Access导出数据到某个文件,然后“发送”数据文件。我想这实际上取决于他们需要多长时间向您发送数据 - 如果频繁,那么这将不切实际。
另一方面,上述所有内容可能会更好地通过网站完成并让人们将数据输入到该网络表单中 - 然后您将数据下载到Access桌面。当然,基于网络,你有新的问题,如发出登录等,更改密码和谁将维护这些用户+登录等。但是,即使有这些问题,某种类型的门户网站或网站收集信息更有意义而不是将Access应用程序部署到每个用户的桌面,相当于简单的表单和提交按钮。桌面数据库没有正确尝试实现的任务的设计和体系结构。
您还可以使用SQL版本的云服务器,并让Access将数据发送到该云托管的SQL服务器,然后再让您的公司网络中的桌面应用程序每天多次下载新数据。
因此,除非您愿意在此处引入一些其他技术,否则Access是给定任务的错误工具