基本模块中的代码如下:Public Function acs1(ByVal strsql As String) As ADODB.Recordset  '打开一个access数据库文件Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = " Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=S:\A30\YS0951\VB\批号系统.mdb"
conn.Open
rs.Open strsql, conn, adOpenDynamic, adLockPessimistic, adCmdText
Set acs1 = rs
Set conn = Nothing
Set rs = NothingEnd Function窗体中的代码如下:Private Sub Form_Load()
Dim rs As New ADODB.Recordset
Dim str As String
str = " select * from 批号表 "
Set rs = acs1(str)
Set DataGrid.DataSource = rsEnd Sub

解决方案 »

  1.   

    " Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=S:\A30\YS0951\VB\批号系统.mdb"
    ------------------------
    把其中的3.51改为4.0再试试
      

  2.   

    那是游标没设置好,在conn.Open前面加:cn.CursorLocation=adUseClicent
      

  3.   

    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\db.mdb;Persist " _
            & "Security Info=False;Jet OLEDB:Database Password=123"
    conn.Open
    rs.Open strsql, conn, adOpenDynamic, adLockPessimistic
    Set acs1 = rs
    Set conn = Nothing
    Set rs = Nothing数据库在程序目录下可以用app,否则你按你的写
      

  4.   

    在conn.Open前面加:conn.CursorLocation=adUseClicent
    不是加:           cn.CursorLocation=adUseClicent 
      

  5.   

    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=S:\A30\YS0951\VB\批号系统.mdb Security Info=False;Jet OLEDB:Database Password=123"
    connCursorLocation=adUseClicent
    conn.Open
    rs.Open strsql, conn, adOpenDynamic, adLockPessimistic
    Set acs1 = rs
    conn.close
    Set conn = Nothing
    rs.close
    Set rs = Nothing
      

  6.   

    Set acs1 = rs  这里的set应该可以不要了