VB.net 读取 Access 的有关问题

VB.net 读取 Access 的问题
服务器上有一个access文件,想通过对不同的人设权限达到管理数据库的目的。比如对A的权限设为全部权限,对B是只读。倘若某一天B先打开这个access文件,没问题。但是倘若A先打开这个文件,会生成一个ldb文件,然后当B打开时就会出现无法锁定文件的字样,即不能看里面的内容。

现找到个办法,倘若对该ldb文件设定权限,将B的权限修改为全部权限,他就能在任何状态下顺利打开access,而因为B的mdb文件的权限还是只读的,因此他就不能对内容进行修改,但是可以读,能达到目的。而该方法的缺陷是,倘若所有人都关闭access,生成的ldb文件就会自动消失,修改过的权限也不存在了。因此当B第二天在别人之后打开该文件时,依然会出现不能锁定文件的情况。

跪求解决之道(排除永远开着该access的方法)。 

windows板块的斑竹提示:只读取数据的话,用ADO读取好了,根本就不用打开Access文件,这真的能达到目的吗?具体该如何执行呢?

我是利用vb.net编软件来管理该access的,打开方式如下:

Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..."
Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(connStr)
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand
     
Dim sql As String = "select ... "
conn.Open()
cmd.Connection = conn
da = New OleDb.OleDbDataAdapter(sql, conn)
ds.Tables.Clear()
da.Fill(ds, ...)
datagridview1.DataSource = ds.Tables(...) 

datagridview

------解决方案--------------------
不要用access,研究这种东西毫无意义,研究出来了也没有实际价值。用sql server。
------解决方案--------------------
B访问不了时,就把文件copy一份,然后访问副本,折腾吧
用sql server 设置用户权限架构就完的事又何必搞那么复杂
------解决方案--------------------
Access 不适合多用户操作!

B 只读,就在程序启动时将 .mdb 从服务器下载到本地,然后仅连接本地的 .mdb。
A 的方案有两种:可以直接连接服务器的 .mdb;也可以下载使用,更新后上传 .mdb。