我从MDB中的VBA代码下面调用dll的vb.net函数。 我从即时窗口调用Get_GDW_data_final sub。
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”将数据库置于某种状态,以防止其被打开或锁定。
答案 0 :(得分:1)
我发现了问题所在:
访问限制是指您无法使用调用该函数的dll访问数据库表: - )
答案 1 :(得分:0)
INPUT
是保留字,请尝试:
ADODBcmd.CommandText = "select count(*) from [input]"