value = GetFileOPENName("请选择文件:", docname, named) IF VALUE=1 THEN fileopen(docname) else messagebox("提示!","文件有错误!") return end if这个是判断文件是否打开的代码,但感觉你的问题不是这个方面,应该是数据库方面问题
LZ:试下下列代码的思路,注意两句Dim句的用法: Private Sub Form_Load() Dim cn As New ADODB.Connection '定义数据库的连接 sql = "select * from jishijilu " Dim rs As New ADODB.Recordset cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\wd.mdb;Persist Security Info=False" cn.Open rs.CursorLocation = adUseClient rs.Open sql, cn, adOpenDynamic, adLockOptimistic Set MSHFlexGrid1.DataSource = rs Set DataGrid1.DataSource = rs Print rs.RecordCount End Sub
adLockBatchOptimistic 常数值为4 :当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、 删、改的操作。
登录窗体 中有数据库连接吧?这个连接中用到rs.open了吧?
IF VALUE=1 THEN
fileopen(docname)
else
messagebox("提示!","文件有错误!")
return
end if这个是判断文件是否打开的代码,但感觉你的问题不是这个方面,应该是数据库方面问题
这两个文件没有区别:文件的内容,我用记事本打开对照过,一模一样。没有区别 。
有可能是数据库操作方面的问题,但我还是得一个一个的解决不是。
判断是否被打开数据库,则可按上述思路判断同名的LDB的文件是否存在.
至于如何关闭被其它用户打开的ACCESS数据库,期待高手解答.
Conn.Open (sysConnString) '运行到此处出错
Private Sub Form_Load()
Dim cn As New ADODB.Connection '定义数据库的连接
sql = "select * from jishijilu "
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\wd.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
Set DataGrid1.DataSource = rs
Print rs.RecordCount
End Sub
'这里写你要打开的代码Exit Sub
xxx:
MsgBox "文件已经被打开"