我需要在数据网格中显示已保存项目的网格(比较“订单”),其中项目保存在具有类似模式的Access 2000数据库中,如下所示:
ID Name Country_ID Plant_Type
1 'Test' 1 1
2 'Second' 2 2
让我们调用文件“Projects.mdb”。然后在datagrid中显示为:
ID Name Country Plant Type
1 'Test' 'Germany' 'Free Range'
2 'Second' 'France' 'Inclined Roof'
其中国家和“工厂类型”是从不同的.mdb文件中的不同表中获取的(也是Access 2000,称之为“Language.mdb”,尽管其中有很多不同的背景数据),具体取决于关于当前用户的语言偏好。遗憾的是,不能将这些.mdb合并到一个文件中。
为了能够显示我到目前为止已将表格从“Language.mdb”链接到“Projects.mdb”的数据网格,但是当项目安装在我创建的.msi文件的另一台计算机上时,这会搞砸(我们' d喜欢这个容易打包和安装),因为目标计算机上的链接路径上不存在“Language.mdb”(基本上是问题here)。 我可以提出以下解决方案:
但我觉得我在这里做错了。如上所述,它不是合并.mdb文件的选项,但是对于更改数据库模式或其他任何建议(我对数据库不是很有经验)的其他建议将非常感激。
答案 0 :(得分:1)
为了解决'不同的安装路径'问题,我使用代码(在每个数据库加载时)首先查找当前db文件夹中的任何后端数据库;如果找不到,它会要求用户找到丢失的.mdb文件。然后代码重新链接数据库。成功链接dbs后,数据库将保存路径并在后续加载时首先检查此路径。
答案 1 :(得分:0)
那么,基于您对解决方案的限制。我会选择选项2或3.根本没有一个优雅的解决方案。
然而,我倾向于你的第三个选项,作为“一次性”修复,以使文件链接,以便它们之间的路径是已知的,并且您不会动态地将路径信息添加到每个查询中。
注释
我只想提一下,但我相信你已经知道了,如果你正在做这样的事情,用Access做这件事感觉不对,更不用说此时为客户端访问2000了部署。我强烈建议另外真正评估解决方案,看看你是否可以合并到一个,或者可能转移到SQL Server Express或者你可以作为安装程序发送给用户的东西
答案 2 :(得分:0)
是否应该将项目拆分为允许每个用户计算机上的前端?如果是这样,您是否可以将路径存储在前端,只有在更改时才重新链接?在大多数情况下,重新链接表的代码非常简单。可以允许用户浏览该位置,并且可以相应地更新Connect属性。