| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 812 人关注过本帖
标题:[求助]为什么我原来用的好好的程序代码在我增加了两个按钮添了两个功能后出 ...
只看楼主 加入收藏
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
收藏
 问题点数:0 回复次数:6 
[求助]为什么我原来用的好好的程序代码在我增加了两个按钮添了两个功能后出错了

为什么我原来用的好好的程序代码在我增加了两个按钮添了两个功能后出错了?有没有可能是什么冲突啊?

EMMBKlml.rar (103.87 KB) [求助]为什么我原来用的好好的程序代码在我增加了两个按钮添了两个功能后出错了


我建的整个工程都在附件里,大家下下来耐心看下了,我就是在加了 查看基础课程 和 查看 课程设计与实践类课程这两个功能后出错了,我没加之前是完全能用的 ,呵呵,就是里面代码和窗体建的有点乱

Private Sub CreateDatabase(mdbPath, mdbPassword)
Dim cat As New ADOX.Catalog
If mdbPassword = "" Then
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data Source" & mdbPath & ";"
Else
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & mdbPath & ";"
End If '这句说有自动化错误,之前用的好好的啊

End Sub

Private Sub daoru(sTableName As String, appdisk As String)
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
Dim dbName As String

If Right(SavePath, 1) <> "\" Then
SavePath = SavePath & "\"
End If

dbName = appdisk & "考场安排.mdb"
Screen.MousePointer = 11
'Label1.Caption = "打开数据库..."
'Label1.Refresh
Set tempDB = Workspaces(0).OpenDatabase(dbName) '生成工程1.exe时说ActiveX部件不能创建对象
'Label1.Caption = "创建Excel对象..."
'Label1.Refresh
Set xl = CreateObject("Excel.Sheet.8")
'Label1.Caption = "创建快照型记录集..."
'Label1.Refresh
Set Sn = tempDB.OpenRecordset(sTableName, 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 = "导出表" & sTableName & "------------------" & (i + 1) * 100 \ 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 SavePath & "\" & sTableName
'从内存中删除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


[此贴子已经被作者于2007-10-27 17:04:42编辑过]

搜索更多相关主题的帖子: 按钮 代码 好好的 
2007-10-27 15:38
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
收藏
得分:0 
新加了两个功能后,原来的功能实现不了了,出错了,可新加的照用啊

你笑我和你们不一样,我笑你们大家都一样~
2007-10-27 16:02
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 

创建数据库那两句,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbpath & ";Persist Security Info=False" 你有好像一句Data Source后有等号,一个没等号
appdisk 是个什么东西?
dbName = appdisk & "考场安排.mdb" 改成"考场安排.mdb"就可以了
关于用DAO打开数据库,给你一个好一点的函数,这样方便

Public dbBase As Database '定义DAO数据库
Public RcTemp As Recordset '定义DAO记录集
Public SQL As String '定义查询语句

Public Sub OpenDataBase()
On Error GoTo 10
Set dbBase = Nothing '打开数据库之前,建议先关掉上次数据库连接
Set dbBase = DBEngine.Workspaces(0).OpenDataBase(你的数据库地址,如果数据库在当前目录,建议用相对地址,别用App什么什么的)
Exit Sub
10:
MsgBox "数据库打开失败!" & Chr(10) + Chr(13) & "可能的错误原因:" & Chr(10) + Chr(13) & "1:数据库文件丢失" & Chr(10) + Chr(13) & "2:数据库文件以只读模式被打开"
End Sub



再有,mdb转到Excel也给你个函数吧

Sub ToExcel(FileName As String, Table As String) '参数是你要转化的文件名和要转化的表
On Error Resume Next
Dim dbs As Database
Set dbs = DBEngine.Workspaces(0).OpenDataBase(你的数据库地址)
If Dir(App.Path & "\MyExcel.xls") <> "" Then Kill FileName
dbs.Execute "SELECT * INTO [Excel 8.0;DATABASE=" & FileName & "].[WorkSheet1] FROM [" & Table & "]"
dbs.Close
Set dbs = Nothing
Shell "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE " & FileName, vbMaximizedFocus
Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & FileName, vbMaximizedFocus
'这里只能打开Office2003,OfficeXP,office2000,没装过其他版的Offce不知道Office路径是什么,其他版本的就得你自己手动去打开了

End Sub

还有,兄弟我说你怎么就不会老老实实用一种方法连接数据库么?
这年代了建议别用DAO了吧?

[此贴子已经被作者于2007-10-27 17:39:30编辑过]

2007-10-27 17:32
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
收藏
得分:0 

哦,那个appdisk是我随便起的一个变量名,是获取的一个路径,

我就很奇怪了,本来这些都没问题啊,可是我又加了点代码后就出错了,还是在其他的窗体里加的


你笑我和你们不一样,我笑你们大家都一样~
2007-10-27 19:06
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

太长了.没看.


我的msn: myfend@
2007-10-27 19:21
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
收藏
得分:0 
回复:(purana)太长了.没看.

别啊,看看吧,帮帮忙了,谢谢了


你笑我和你们不一样,我笑你们大家都一样~
2007-10-27 19:31
wangtuan7788
Rank: 1
等 级:新手上路
帖 子:286
专家分:0
注 册:2007-10-8
收藏
得分:0 

哎呀,真不好意思,麻烦大家了,那些错误原来是我不小心把一些系统的文件给删了,害的的我又重装系统,现在没事了


你笑我和你们不一样,我笑你们大家都一样~
2007-10-30 08:33
快速回复:[求助]为什么我原来用的好好的程序代码在我增加了两个按钮添了两个功能 ...
数据加载中...
 
   



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

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