Access数据库跨库查询及记录集区分
医疗设备软件一般都是单机软件,如果是Windows平台,常会选择Access数据库存储结构化数据,因为他轻量,便于部署。然而随着医疗信息化的发展,医生希望对多台单机设备的数据进行管理,采用网络数据库当然可以解决这个问题,但软件部署会变得比较麻烦,所以如果Access数据能支持跨库查询,那就完美了,可喜的是Access从2007版就已经支持该功能了,且查询速度还非常快。
Access数据库跨库查询可使用“in 字句”,语法如下,可参见微软帮助手册:https://support.office.com/zh-cn/article/IN-%E5%AD%90%E5%8F%A5-3f9369a8-2032-4637-81af-699db411fbfa
语法
[SELECT | INSERT] INTO destination IN
{path | ["path" "type"] | ["" [type; DATABASE = path]]}
示例
有两个数据库,表ys_user结果如下,希望按时间进行排序
id | ys_name | ys_date |
1 | 张三 | 2018/1/1 |
2 | 李四 | 2018/1/3 |
d:\test1.mdb
id | ys_name | ys_date |
1 | 王五 | 2018/1/1 |
2 | 麻六 | 2018/1/2 |
d:\test2.mdb
查询语句:
select id,ys_name,ys_date from ys_user in 'd:\test1.mdb', select id,ys_name,ys_date from ys_user in 'd:\test2.mdb' order by ys_date
查询结果:
id | ys_name | ys_date |
1 | 张三 | 2018/1/1 |
1 | 王五 | 2018/1/1 |
2 | 麻六 | 2018/1/2 |
2 | 李四 | 2018/1/3 |
问题
记录集是查出来了,但修改记录集的时候如何知道该条记录是哪个库的呢?我们可以在查询语句中作文章,可以多加一个列
查询语句
select id,ys_name,ys_date, 'd:\test1.mdb' as dbpath from ys_user in 'd:\test1.mdb', select id,ys_name,ys_date, 'd:\test2.mdb' as dbpath from ys_user in 'd:\test2.mdb' order by ys_date
查询结果:
id | ys_name | ys_date | dbpath |
1 | 张三 | 2018/1/1 | d:\test1.mdb |
1 | 王五 | 2018/1/1 |
d:\test2.mdb |
2 | 麻六 | 2018/1/2 | d:\test2.mdb |
2 | 李四 | 2018/1/3 |
d:\test1.mdb |