Private Sub Form_Load()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_sell.mdb"
    rs.Open "224-", cn, adOpenKeyset, adLockOptimistic
    Set MSHFlexGrid1.DataSource = rs
    MSHFlexGrid1.ColWidth(0) = 100
End Sub
    
我想连接 用个assecc数据库,为什么老是出现找不到数据成员或方法 

解决方案 »

  1.   

    如果你是正确引用了必要的DLL文件(可通过新建数据工程自动引用),你的代码rs.Open "224-", cn, adOpenKeyset, adLockOptimistic中"224-"是有明显错误. Private Sub Form_Load()
        Dim cn As New ADODB.Connection '定义数据库的连接存放数据和代码
         Dim rs As New ADODB.Recordset
        Dim sql As String
        sql = "select * from jishijilu where car_bm like 'DF160%'" '本句按实际需打开的数据表修改    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_sell.mdb"
        cn.Open
        rs.CursorLocation = adUseClient
        rs.Open sql, cn, adOpenDynamic, adLockOptimistic
        Set MSHFlexGrid1.DataSource = rs
        MSHFlexGrid1.ColWidth(0) = 100
    End Sub
      

  2.   

    如果你是正确引用了必要的DLL文件(可通过新建数据工程自动引用),你的代码rs.Open "224-", cn, adOpenKeyset, adLockOptimistic中"224-"是有明显错误. Private Sub Form_Load()
        Dim cn As New ADODB.Connection '定义数据库的连接存放数据和代码
         Dim rs As New ADODB.Recordset
        Dim sql As String
        sql = "select * from jishijilu where car_bm like 'DF160%'" '本句按实际需打开的数据表修改    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_sell.mdb"
        cn.Open
        rs.CursorLocation = adUseClient
        rs.Open sql, cn, adOpenDynamic, adLockOptimistic
        Set MSHFlexGrid1.DataSource = rs
        MSHFlexGrid1.ColWidth(0) = 100
    End Sub
      

  3.   

    连贴2次,未见所贴内容,不知道CSDN出何问题?再贴一次:
    如果你是正确引用了必要的DLL文件(可通过新建数据工程自动引用),你的代码rs.Open "224-", cn, adOpenKeyset, adLockOptimistic中"224-"是有明显错误. Private Sub Form_Load()
        Dim cn As New ADODB.Connection '定义数据库的连接存放数据和代码
         Dim rs As New ADODB.Recordset
        Dim sql As String
        sql = "select * from jishijilu where car_bm like 'DF160%'" '本句按实际需打开的数据表修改    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_sell.mdb"
        cn.Open
        rs.CursorLocation = adUseClient
        rs.Open sql, cn, adOpenDynamic, adLockOptimistic
        Set MSHFlexGrid1.DataSource = rs
        MSHFlexGrid1.ColWidth(0) = 100
    End Sub
      

  4.   

    连贴2次,未见所贴内容,不知道CSDN出何问题?再贴一次:
    如果你是正确引用了必要的DLL文件(可通过新建数据工程自动引用),你的代码rs.Open "224-", cn, adOpenKeyset, adLockOptimistic中"224-"是有明显错误. Private Sub Form_Load()
        Dim cn As New ADODB.Connection '定义数据库的连接存放数据和代码
         Dim rs As New ADODB.Recordset
        Dim sql As String
        sql = "select * from jishijilu where car_bm like 'DF160%'" '本句按实际需打开的数据表修改    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_sell.mdb"
        cn.Open
        rs.CursorLocation = adUseClient
        rs.Open sql, cn, adOpenDynamic, adLockOptimistic
        Set MSHFlexGrid1.DataSource = rs
        MSHFlexGrid1.ColWidth(0) = 100
    End Sub
      

  5.   

    rs.Open "224-", cn, adOpenKeyset, adLockOptimistic 
    224-是什么?
      

  6.   

    有没有在通用部分定义rs和cn啊,这个变量必须定义
    Dim rs As ADODB.Recordset
      

  7.   

    rs需要定义,不能直接使用。
    Dim rs As ADODB.Recordset
      

  8.   

    rs需要定义,不能直接使用。
    Dim rs As ADODB.Recordset
      

  9.   

    昨天已答复4次,CSDN出错,不见答贴.
    新建数据工程,VB会自动引用必要的DLL文件.
    5楼说的没错:
    rs.Open "224-", cn, adOpenKeyset, adLockOptimistic  
    224-是什么?
    在你代码中增加2句:
    Dim sql
    sql="select * from tabel" 

    rs.Open "224-", cn, adOpenKeyset, adLockOptimistic 
    改为:
    rs.Open sql, cn, adOpenKeyset, adLockOptimistic  
      

  10.   

    给大家解释一下,224- 是access数据库中的一个表名
      

  11.   


    Private Sub Form_Load() 
        Dim cn As New ADODB.Connection 
        Dim rs As New ADODB.Recordset 
        Dim sql
        sql = "select * from 224-" 
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_sell.mdb" 
        rs.Open sql, cn, adOpenKeyset, adLockOptimistic 
        Set MSHFlexGrid1.DataSource = rs 
        MSHFlexGrid1.ColWidth(0) = 100 
    End Sub 
      

  12.   

    sql = "select * from 224-" 是结构化查询语句,改变语句写法可实现各类查询。
      

  13.   

    12 楼的代码我试过了,不行,MSHFlexGrid1.ColWidth(0) = 100  总回出现包错 方法未找到或者是数据成员
      

  14.   

    我这儿调试这些代码正常,未报错。实在不行,那你将该行代码注释掉看看是否报错。
    该行代码用来设置MSHFlexGrid1的最左列的宽度的。
      

  15.   

    我想问一下,怎么能将该access数据库中的那个小区指标显示出来呢
      

  16.   

    '******Microsoft ActiveX Data Objects 2.5 Library
    '添加MsHflexgrid1
    '.mdb放在程序同路径下Option Explicit
    Public conn As New ADODB.Connection '定义数据连接字符串
    Public rs As New ADODB.Recordset '定义记录集
    Dim appdisk$, db$, trecord%, i%, j%
    Private Sub Form_Load()
       appdisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
       db = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & appdisk & "bwscale.mdb"
       conn.CursorLocation = adUseClient
       conn.Open db '打开数据库连接
       rs.Open "bwcust", conn, adOpenKeyset, adLockPessimistic ''打开记录集
       trecord = rs.RecordCount
       Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
       MSHFlexGrid1.rows = trecord + 1
       Call Showtitle
       If trecord > 0 Then rs.MoveFirst: Call Showall
    End SubPrivate Sub Showtitle()     '显示栏位标题
       MSHFlexGrid1.Cols = 4
       MSHFlexGrid1.Row = 0: MSHFlexGrid1.Col = 0
       For i = 0 To 3
          MSHFlexGrid1.Col = i
          MSHFlexGrid1.CellAlignment = 4     '4=居中     0=靠左     6=靠右
          Select Case i
             Case 0
                MSHFlexGrid1.Text = "厂商编号"
                MSHFlexGrid1.ColWidth(i) = 1400
             Case 1
                MSHFlexGrid1.Text = "厂商名称"
                MSHFlexGrid1.ColWidth(i) = 1400
             Case 2
                MSHFlexGrid1.Text = "负责人"
                MSHFlexGrid1.ColWidth(i) = 1200
             Case 3
                MSHFlexGrid1.Text = "联 系 人"
                MSHFlexGrid1.ColWidth(i) = 1200
          End Select
       Next i
    End SubPrivate Sub Showall()     '列出所有数据
       rs.MoveFirst
       For i = 0 To trecord - 1
          MSHFlexGrid1.Row = i + 1
          For j = 0 To 3
             MSHFlexGrid1.Col = j
             MSHFlexGrid1.CellAlignment = 0
             MSHFlexGrid1.Text = IIf(Trim(rs.Fields(j)) <> "", rs.Fields(j), "")
          Next j
          rs.MoveNext
       Next i
       rs.MoveFirst
       MSHFlexGrid1.Row = 1: MSHFlexGrid1.Col = 0
       MSHFlexGrid1.TopRow = 1
    End Sub
      

  17.   

    已经解决的差不多了。不过还有细节问题呢。
    谢谢了cbm666
      

  18.   

    在工程菜单下选择,引用,选择其中的Microsoft Access 11.0 Object Library (若果你安装的是Office2003)就可以使用你原来的代码了。
      

  19.   

    rs.Open "SELECT * FROM [224-]", cn, adOpenKeyset, adLockOptimistic