标题:[求助]程序出现错误,在题目上说不太清,大家进里面看,指点指点
只看楼主
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
 问题点数:0 回复次数:11 
[求助]程序出现错误,在题目上说不太清,大家进里面看,指点指点

Option Explicit

Private Sub Command1_Click()
Dim tempDB As Database
Dim i As Integer ' 循环计数器
Dim j As Integer
Dim rCount As Long ' 记录的个数
Dim xl As Object ' OLE自动化对象
Dim Sn As Recordset
Screen.MousePointer = 11
Label1.Caption = "打开数据库..."
Label1.Refresh
Set tempDB = Workspaces(0).OpenDatabase("考场安排.mdb")
Label1.Caption = "创建Excel对象..."
Label1.Refresh
Set xl = CreateObject("Excel.Sheet.8")
Label1.Caption = "创建快照型记录集..."
Label1.Refresh
Set Sn = tempDB.OpenRecordset("time1", dbOpenSnapshot)

If Sn.RecordCount > 0 Then
Label1.Caption = "将字段名添加到电子表格中"
Label1.Refresh
For i = 0 To Sn.Fields.Count - 1
xl.Worksheets(1).cells(1, i + 1).Value = Sn(i).Name
Next
Sn.MoveLast
Sn.MoveFirst
rCount = Sn.RecordCount
' 在记录中循环
i = 0
Do While Not Sn.EOF
Label1.Caption = "Record:" & Str(i + 1) & " of" & _
Str(rCount)
Label1.Refresh
For j = 0 To Sn.Fields.Count - 1
' 加每个字段的值加到工作表中
If Sn(j).Type < 11 Then
xl.Worksheets(1).cells(i + 2, j + 1).Value = Sn(j)
Else
' 处理Memo和LongBinary 类型的字段
xl.Worksheets(1).cells(i + 2, j + 1).Value = "Memo or Binary Data"
End If
Next j
Sn.MoveNext
i = i + 1
Loop
' 保存工作表
Label1.Caption = "保存文件..."
Label1.Refresh
xl.SaveAs "f:\time1.XLS"
'从内存中删除Excel对象
Label1.Caption = "退出Excel"
Label1.Refresh
xl.Application.Quit
Else
' 没有记录
End If
' 清除
Label1.Caption = "清除对象"
Label1.Refresh
Set xl = Nothing
Set Sn = Nothing
Set tempDB = Nothing
Screen.MousePointer = 0 ' 恢复鼠标指针
Label1.Caption = "Ready"
Label1.Refresh


End Sub

Private Sub Form_Load()
Label1.AutoSize = True
Label1.Caption = "Ready"
Label1.Refresh
End Sub

这个是实现access向excel中导入数据的,它在独立一个工程中是可以运行的,
但是我把Private Sub Command1_Click()换成Private Sub ExportAccessToExcelSheet() 写在另一个工程中,并调用他的话,就说Set Sn = tempDB.OpenRecordset("time1", dbOpenSnapshot)出错了,说“类型不匹配”
不知道这是为什么啊?
搜索更多相关主题的帖子: 太清 
2007-10-24 19:37
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
得分:0 
可能是数据连接有问题
2007-10-24 19:49
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
得分:0 
要是改的话,应该怎么改啊?

你笑我和你们不一样,我笑你们大家都一样~
2007-10-24 20:00
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
得分:0 
看不出你的“考场安排.mdb”的路径在哪里。OpenDatabase是打开已经存在的数据库
2007-10-24 20:15
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
得分:0 
我改成"f:\wangtuan\考场安排.mdb"也还是不行啊,就把那段代码放一个工程里面什么错误都没有啊

你笑我和你们不一样,我笑你们大家都一样~
2007-10-24 20:17
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
得分:0 
Set tempDB = Workspaces(0).OpenDatabase("考场安排.mdb")换成:
Set tempDB = OpenDatabase("f:\wangtuan\考场安排.mdb")试一下。
2007-10-24 20:20
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
得分:0 
还是不行啊

你笑我和你们不一样,我笑你们大家都一样~
2007-10-24 20:26
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
得分:0 
Set Sn = tempDB.OpenRecordset("time1", dbOpenSnapshot)
这里"time1",应该是一个SQL语句啊。
2007-10-24 20:39
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
得分:0 
那段代码独自运行的时候好好的啊,就是我把它写成sub过程,调用的时候才出错的啊,不会是一个SQL语句吧,应该就是一个表的名字吧

现在我又新建了一个工程,把它写成sub过程,进行调用,也是一点错没有啊,就是把他加到我已有那个代码里时,出现错误,我原来的那段代码也是执行的很好啊

你笑我和你们不一样,我笑你们大家都一样~
2007-10-24 20:46
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
得分:0 
那帮不了你啊,DAO我很少用。
你可以用F8逐句调试看看。
2007-10-24 20:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-180492-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084838 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved