数据库关闭时错误,对象关闭时,不允许操作!

expect88 2011-05-24 01:06:35
'从数据库到处数据到 excel
Dim FileName
Dim i
i = 0
FileName = "c:\test.xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")

REM 判断文件是否存在
If fso.FileExists(FileName) Then
Set objExcel = CreateObject("Excel.Application")
Set objBook = objExcel.Workbooks.Open(FileName)
Set objSheet = objBook.Sheets(1)
objSheet.Name = "testing"
objSheet.Activate
Else
Set objExcel = CreateObject("Excel.Application") '创建 excel 对象
Set objBook = objExcel.Workbooks.Add() '创建 excel 工作簿
Set objSheet = objBook.Sheets("Sheet1") '获得 Sheet1 表
objSheet.Name = "testing" '设置表明
objBook.Worksheets("Sheet2").Delete '删除 Sheet2 表
objBook.Worksheets("Sheet3").Delete '删除 Sheet3 表
objSheet.Activate '激活当前工作表
objBook.SaveAs(FileName) '文件另存为
End If

objSheet.cells(1,1).value = "Order_Number" '设置列标题
objSheet.cells(1,2).value = "Customer_Name"
objSheet.cells(1,3).value = "Departure_Date"
objSheet.cells(1,4).value = "Flight_Number"
objSheet.cells(1,5).value = "Tickets_Ordered"
objSheet.cells(1,6).value = "Class"
objSheet.cells(1,7).value = "Agents_Name"
objSheet.cells(1,8).value = "Send_Signature_With_Order"

Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.RecordSet")
REM 无需设置数据源连接方式
Const strConn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\flight32.mdb"

sql = "select * from Orders" '查询语句
rs.Open sql , strConn ,1,1

If rs.EOF and rs.BOF Then
MsgBox "数据库中无数据"
Else
Do until rs.EOF
Order_Number = rs("Order_Number").value
Customer_Name = rs("Customer_Name").value
Departure_Date = rs("Departure_Date").value
Flight_Number = rs("Flight_Number").value
Tickets_Ordered = rs("Tickets_Ordered").value
ClassType = rs("Class").value
Agents_Name = rs("Agents_Name").value
Send_Signature_With_Order = rs("Send_Signature_With_Order").value

objSheet.cells(i+2,1).value = Order_Number
objSheet.cells(i+2,2).value = Customer_Name
objSheet.cells(i+2,3).value = Departure_Date
objSheet.cells(i+2,4).value = Flight_Number
objSheet.cells(i+2,5).value = Tickets_Ordered
objSheet.cells(i+2,6).value = ClassType
objSheet.cells(i+2,7).value = Agents_Name
objSheet.cells(i+2,8).value = Send_Signature_With_Order

i = i + 1
rs.MoveNext
Loop
End If


rs.Close
Set rs = Nothing
'ON ERROR RESUME NEXT
'conn.Close '关闭时报错误?对象关闭时,不允许操作
Set conn = Nothing
Set fos = Nothing
objBook.Save
objExcel.Visible = True
Set objBook = Nothing
objExcel.Quit
Set objExcel = Nothing



各位高手帮忙看看 conn.close 对象关闭时,不允许操作。
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
expect88 2011-05-25
  • 打赏
  • 举报
回复
谢谢,各位解答。 刚接触VBS这玩意,还真不习惯。
Ny-6000 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cnuser1 的回复:]
同意2、3楼得说法。
[/Quote]

恩.
cnuser1 2011-05-24
  • 打赏
  • 举报
回复
同意2、3楼得说法。
dongfangbai 2011-05-24
  • 打赏
  • 举报
回复
conn还沒有open
Tosp2012 2011-05-24
  • 打赏
  • 举报
回复
conn還沒有open
Tosp2012 2011-05-24
  • 打赏
  • 举报
回复
用ADO.net吧。
看起來舒服點。
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cnuser1 的回复:]
同意2、3楼得说法。
[/Quote]+1
jnxunjie 2011-05-24
  • 打赏
  • 举报
回复
Set rs = Nothing

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧