程序如下,是我看了别人的例程,在不太懂的情况下编的,出现的问题在程序后.
Private Sub cmdSaveAs_Click()    Dim i As Integer
    Dim j As Integer
    Dim rCount As Long
        
    Dim cn As New ADODB.Connection
    Dim Cmd As New ADODB.Command
    Dim rs As New ADODB.Recordset
    Dim strConnect As String
    Dim StrSql As String
    StrSql = "select * from parameter_add_material "    Set cn = New ADODB.Connection
                
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\db\furnace.mdb"  
    cn.ConnectionString = strConnect
    cn.Open
    With Cmd
        .ActiveConnection = cn
        .CommandType = adCmdText
        .CommandText = StrSql
        .Parameters.Refresh
    End With    With rs
        .CursorLocation = adOpenStatic
        .CursorType = adOpenStatic
        .LockType = adLockReadOnly
        .Open Cmd
    End With
    
    '-------------------
    Set ExcelSheet = CreateObject("Excel.Application")
    ExcelSheet.Workbooks.Add
    
    If rs.RecordCount > 0 Then
        For i = 0 To rs.Fields.Count - 1
            ExcelSheet.Worksheets(1).Cells(1, i + 1).Value = rs(i).Name
        Next
        rs.MoveLast
        rs.MoveFirst
        rCount = rs.RecordCount
        i = 0
        Do While Not rs.EOF
            For j = 0 To rs.Fields.Count - 1
                If rs(j).Type < 11 Then     
                    ExcelSheet.Cells(i + 2, j + 1).Value = rs(j)
                End If
            Next
            rs.MoveNext
            i = i + 1
        Loop
        ExcelSheet.SaveWorkspace
        ExcelSheet.Application.Quit
    End If
    
    Set ExcelSheet = Nothing
End Sub点击存储键后会提示:
"在当前位置发现已经存在名为“RESUME.XLW”的文件。是否替换现有的“RESUME.XLW"?
点击“是”,完成了存储操作,点击否或者取消,则提示:
实时错误‘1004’:
对象'SaveWorkspace'的方法'_Application'失败并且偶尔还会出现:
由于其他应用程序忙,不能执行该操作,选择“切换到”按钮以激活忙的应用程序并纠正其错误  “切换到”,重试,取消(不能操作)最后,如果运行这个程序3次,分别存为book1,xls,book2.xls,book3.xls,在关机时候(win2000),还会再提示一遍,说这三个文件的内容已更改,是否存盘?毛病出在哪里啊?高手来救命...

解决方案 »

  1.   

    yoki(小马哥),窗口上是建立了一个datagrid控件,程序的前半部分是建立数据连接(连接ACCESS数据库),后半部分是转存.
    好像就这些了:),我正在看其他人的相关文章,但是我的错在哪里,毛病那么多,呵呵,还是想搞清楚:)
      

  2.   

    以上现象都很正常
    ///对象'SaveWorkspace'的方法'_Application'失败////
    要保存的文件名没得到,当然出错
            Loop
            On Erroe resume Next   '加上这句
            ExcelSheet.SaveWorkspace   '不明白为何要保存为工作区
            ExcelSheet.Application.Quit
        End If/////由于其他应用程序忙,不能执行该操作,选择“切换到”按钮以激活忙的应用程序并纠正其错误  “切换到”,重试,取消(不能操作)//////
    VB在对调用对象进行操作过程中,主程序被挂起。//////最后,如果运行这个程序3次,分别存为book1,xls,book2.xls,book3.xls,在关机时候(win2000),还会再提示一遍,说这三个文件的内容已更改,是否存盘?////
    你在调试时,由于出错ExcelSheet.Application.Quit这句没执行到,当然出现多个EXCEL没关。
    如下更快:
    '-------------------
        Set ExcelApp = CreateObject("Excel.Application")
        set ExcelBook = ExcelApp.Workbooks.Add
        set ExcelSheet = ExcelBook.Sheets(1)
        ExcelSheet.QueryTables.Add rs , ExcelSheet.Range("A1")
        ExcelBook.Save
        ExcelApp.Quit
        Set ExcelApp = Nothing
        Set ExcelBook = Nothing
        Set ExcelSheet = Nothing
    End Sub