我用的是sql数据库,想把数据库中的数据显示在MSFlexGrid1空件中,以下是我初始化的代码,但是报错:实时错误‘91’对象变量或with
块变量未设置,请问各位高手如何解决?谢谢!'系统初始化
Private Sub Form_Load()
Dim cn As New ADODB.Connection
  Dim rs As New ADODB.Recordset
  cn.Open "DSN=xtsjk;Uid=sa;Pwd=123456"
  rs.Open "营业员信息表", cn, adOpenKeyset, adLockOptimistic
  Set MSFlexGrid1.DataSource = rs
  MSHFlexGrid1.ColWidth(0) = 100
End Sub

解决方案 »

  1.   

        Set Conn = New ADODB.Connection
        Conn.CursorLocation = adUseClient
        Conn.ConnectionString = "Provider=SQLOLEDB.1;PassWord=1234;User ID=sa;Initial Catalog=ACC;Data Source=192.168.0.252"
        Conn.Open
    數據庫沒有連接正確
      

  2.   

      完全同意1楼。绑定datagrid时一定要设游标 Conn.CursorLocation = adUseClient 
      连接串可以通过窗体上加Adodc1控件,右击属性通过配置可以自动生成连接串。保证连接串的正确性
      

  3.   

    cn.open ...
    rs.Open "select * from 营业员信息表", cn, adOpenKeyset,adlockreadonly
    Set MSFlexGrid1.DataSource = rs 
      

  4.   

    '如果只给个表名就要指定 adCmdTable,否则就要像 4 楼一样用 SELECT 语句
    rs.Open "营业员信息表", cn, adOpenKeyset, adLockOptimistic, adCmdTable
      

  5.   

    Private Sub Form_Load()
    Dim cn As New ADODB.Connection
     Dim rs As New ADODB.Recordset
    Set conn = New ADODB.Connection
        conn.CursorLocation = adUseClient
        conn.connectionstring = "Provider=MSDASQL.1;Password=123456;Persist Security Info=True;User ID=sa;Data Source=xtsjk"
        rs.Open "select * from 营业员信息表", cn, adOpenKeyset, adLockOptimistic
        Set MSFlexGrid1.DataSource = rs
    SFlexGrid1.ColWidth(0) = 100
    End Sub
    这样写吗?但是不对,有谁能写完整点吗?谢谢了!
      

  6.   

    搞什么,原始语句中 MSFlexGrid1、MSHFlexGrid1 根本不是同一个;所以你的问题不是什么访问数据库的问题,根本是变量 MSHFlexGrid1 未声明。在代码的最前面加一句 Option Explicit,编译时就能找出错误来。
    选项 Options\Editor\Reauire Variable Declaration 推荐选上,新建代码就会自动添上 Option Explicit。
      

  7.   

    我用的是sql数据库,想把数据库中的数据显示在MSFlexGrid1空件中,以下是我初始化的代码,但是报错:实时错误‘91’对象变量或with 
    块变量未设置,请问各位高手如何解决?谢谢! '系统初始化 
    Private Sub Form_Load() 
    Dim cn As New ADODB.Connection 
      Dim rs As New ADODB.Recordset 
      cn.Open "DSN=xtsjk;Uid=sa;Pwd=123456" 
      rs.Open "营业员信息表", cn, adOpenKeyset, adLockOptimistic 
      Set MSFlexGrid1.DataSource = rs 
      MSHFlexGrid1.ColWidth(0) = 100 
    End Sub 
      

  8.   

    msflexgrid不支持ado的recordset,只支持dao的,
    如果使用ado,请使用msHflexgrid
      

  9.   

      Set MSFlexGrid1.DataSource = rs 
      MSHFlexGrid1.ColWidth(0) = 100 
    ==============
    怎么一会儿msflexgrid,一会又msHflexgrid,确认好自己在form中放置的到底是哪种控件。
    如果一定要用msflexgrid+ado,那么就不能用绑定数据源(RECORDSET)的方式,只能是用程序填充。
    如果想用绑定ado方式,则一定要使用msHflexgrid控件。
      

  10.   

    如果我要用msflexgrid,那么我的程序该怎么写?请指教?
    或者说我怎么填充data1的属性,因为我连接的是sql数据库。
    connect
    database
    recordsource
    这三个属性如何填?
      

  11.   

    connect="ODBC;DATABASE=db_amyyxt;UID=sa;PWD=sa;DSN=amyyxt;"
    database空白,databasename空白
    recordsource="tablename"
     
      

  12.   

    以上dsn名字等用你自己的实际值替换一下即可。