0

我从 MDB 中的 VBA 代码下面调用 dll 的 vb.net 函数。我正在从即时窗口调用 Get_GDW_data_final 子。

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

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

类的编码如下。

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”置于阻止它被打开或锁定的状态。

4

2 回答 2

1

我发现了问题所在:

这是访问限制,您无法使用调用函数的 dll 访问数据库表:-)

于 2016-03-10T08:51:13.097 回答
0

INPUT是保留字,所以试试:

ADODBcmd.CommandText = "select count(*) from [input]"
于 2015-11-18T12:01:02.917 回答