问题如下图所示
实现功能是:单击审核按钮进根据所查询的入库单号,在“是否审核”列中自动填入“审核”二字,以下是我个人写的代码:Private Sub Command2_Click()
Dim sql As String
Dim str As String
Dim Conn As ADODB.Connection
Dim rst As ADODB.Recordset
str = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=UF2011;Data Source=server"
Conn.ConnectionString = str
Conn.Open
Set rst = New ADODB.Recordset
sql = "select * from salary"
DataGrid1.Columns(8).Text = "审核"
rst.CursorLocation = adUseClient 
rst.Open sql, Conn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rst
DataGrid1.Refresh
End Sub执行时
就会跳到 Conn.ConnectionString = str 这一行!提示,实时错误'91'..对象变量或with块变量未设置 .......烦请各位高手帮帮忙,或者各位有更好的代码能实现这个功能请烦写一下哈....谢谢了!

解决方案 »

  1.   


    Conn.ConnectionString = str
    前,加一句:
    Set Conn = New ADODB.Connection
      

  2.   


    Dim Conn As new ADODB.Connection
      

  3.   

    你那个按钮执行了之后读取的是数据库中的信息,你自己光时在代码里"taGrid1.Columns(8).Text = "审核""改掉是没用的,读取的还是数据库中的信息,你应该写一个数据库修改信息的语句再执行就行了
      

  4.   

        Dim rs As ADODB.Recordset
        DataGrid1.Columns(8).Text = "审核"
        Set rs = DataGrid1.DataSource
        rs.Requery
      

  5.   

    sub form_load
    Dim sql As String
    Dim str As String
    Dim Conn As new ADODB.Connection
    Dim rst As ADODB.Recordset
    str = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=UF2011;Data Source=server"
    Conn.ConnectionString = str
    Conn.Open
    Set rst = New ADODB.Recordset
    sql = "select * from salary"rst.CursorLocation = adUseClient  
    rst.Open sql, Conn, adOpenstatic, adLockOptimistic
    Set DataGrid1.DataSource = rstEnd Subsub command1_clickDim rst As ADODB.Recordset
    Set rst=DataGrid1.DataSourceif not rst is nothing then
    with rst
    .movefirst
    while not .eof
    .fields("审核字段名称")="审核" '审核字段名称为你对应的数据库字段名称
    .movenext
    wend
    .updatebatch
    end with
    end if
    End Sub
      

  6.   

    我给你改一下吧:Private Sub Command2_Click()
    Dim sql As String
    Dim str As String
    Dim Conn As ADODB.Connection
    Dim rst As ADODB.Recordset
    str = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=UF2011;Data Source=server"
    Set Conn = New ADODB.Connection
    Conn.ConnectionString = str
    Conn.Openmyid = Trim(datagrid1.Columns(1))
    Set rst = New ADODB.Recordset
    sql="update salary set 是否审核='审核' where 入库单号='" & myid & "'"
    rst.CursorLocation = adUseClient  
    rst.Open sql, Conn, adOpenDynamic, adLockOptimisticsql = "select * from salary"
    rst.CursorLocation = adUseClient  
    rst.Open sql, Conn, adOpenDynamic, adLockOptimistic
    Set DataGrid1.DataSource = rst
    DataGrid1.Refresh
    End Sub