错误 -2147467259 (80004005) .net mdb

error -2147467259 (80004005) .net mdb

我正在从 MDB 中的 VBA 代码下面调用一个 dll 的 vb.net 函数。 我正在从直接 Window.

调用 Get_GDW_data_final sub
Public Sub Get_GDW_data_final()
Dim r As New Get_GDW_Data.GDW
MsgBox r.DetailedWork()
End Sub

我已经创建 Get_GDW_Data.dll 在 MDB 中添加了对它的引用。

class的编码如下

Public Class GDW
    Public Function DetailedWork()
        Dim lastrow As Long
        Dim ADODBcnn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Access8\W156_RocketOffset_Backup.mdb;Persist Security Info=False;Mode=read")
        Dim ADODBcmd As New OleDb.OleDbCommand
        Dim ADODBcmd1 As New OleDb.OleDbCommand
        Dim ADODBrst As OleDb.OleDbDataReader
        ADODBcnn.Open()
        ADODBcmd.CommandText = "select count(*) from input"
        lastrow = ADODBcmd.ExecuteScalar()
        ADODBcnn.Close()
        Return lastrow.ToString()

    End Function
End Class

这里出现错误

运行-时间错误-2147467259 (80004005) 数据库已由管理员或机器 'Rachit' 设置为防止打开或锁定的状态。

INPUT是保留字,所以试试:

ADODBcmd.CommandText = "select count(*) from [input]"

我发现了问题所在:

这是一个访问限制,您不能使用从中调用函数的 dll 访问数据库的 table:-)