** 想实现的功能:
程序使用的数据库必须符合一定的格式,也就是必须有必要的表和字段等等。在程序中,已经打开一个数据库,我想重新选择一个数据库,使用通用对话框 dlgChooseFile 选择。当数据库格式不正确时,转到错误处理,msgbox 出一个对话框,选"确定",重新选择数据库,选"取消",退出选择,并关闭连接。**出现问题:
当我第一次选择错误格式的数据库时候,程序可以正常的转向异常处理部分,可是当我点“确定”,重新进行选择的时候,在程序中标 “¥” 处出错,说不能在数据库中找到需要的表。
现在我比较疑惑的是,为什么开始时候在这个地方可以顺利的转到异常处理,可是第二次选择的时候却报错恳请大家帮忙,谢谢程序如下:Private Sub cmdSelectDataBase_Click()
Retry:
With dlgChooseFile
.Filter = "Microsoft Access|*.mdb"
.ShowOpen
End With
If dlgChooseFile.FileName = "" Then
''没有选择任何数据库
Exit Sub
Else
'指向需要打开的数据库
strLink = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlgChooseFile.FileName
End If
oCnn.Close '关闭以前的数据库 排除用于开始没有打开数据库,而又选择一数据库的情况
oCnn.Open strLink '打开新数据库 Dim cmd As ADODB.Command
Dim rst2 As ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = oCnn
cmd.CommandType = adCmdText
¥ cmd.CommandText = "select * from 测试记录表"
On Error GoTo MyError '数据库格式不正确,转到异常处理部分
Set rst2 = cmd.Execute
If Not rst2.EOF Then
rst2.MoveFirst
Else
Exit Sub ''数据库没有记录
End If
MyError:
Err.Clear
If MsgBox("数据库格式不正确,重新选择数据库?", vbExclamation + vbOKCancel + vbDefaultButton1, "错误") = vbOK Then
GoTo Retry
Else
oCnn.close
End If
End Sub
程序使用的数据库必须符合一定的格式,也就是必须有必要的表和字段等等。在程序中,已经打开一个数据库,我想重新选择一个数据库,使用通用对话框 dlgChooseFile 选择。当数据库格式不正确时,转到错误处理,msgbox 出一个对话框,选"确定",重新选择数据库,选"取消",退出选择,并关闭连接。**出现问题:
当我第一次选择错误格式的数据库时候,程序可以正常的转向异常处理部分,可是当我点“确定”,重新进行选择的时候,在程序中标 “¥” 处出错,说不能在数据库中找到需要的表。
现在我比较疑惑的是,为什么开始时候在这个地方可以顺利的转到异常处理,可是第二次选择的时候却报错恳请大家帮忙,谢谢程序如下:Private Sub cmdSelectDataBase_Click()
Retry:
With dlgChooseFile
.Filter = "Microsoft Access|*.mdb"
.ShowOpen
End With
If dlgChooseFile.FileName = "" Then
''没有选择任何数据库
Exit Sub
Else
'指向需要打开的数据库
strLink = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlgChooseFile.FileName
End If
oCnn.Close '关闭以前的数据库 排除用于开始没有打开数据库,而又选择一数据库的情况
oCnn.Open strLink '打开新数据库 Dim cmd As ADODB.Command
Dim rst2 As ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = oCnn
cmd.CommandType = adCmdText
¥ cmd.CommandText = "select * from 测试记录表"
On Error GoTo MyError '数据库格式不正确,转到异常处理部分
Set rst2 = cmd.Execute
If Not rst2.EOF Then
rst2.MoveFirst
Else
Exit Sub ''数据库没有记录
End If
MyError:
Err.Clear
If MsgBox("数据库格式不正确,重新选择数据库?", vbExclamation + vbOKCancel + vbDefaultButton1, "错误") = vbOK Then
GoTo Retry
Else
oCnn.close
End If
End Sub
解决方案 »
- VB中一个程序可以注册两个控件吗?
- 假设i代表"3123123"又代表"0891231",怎样的代码???急求!!
- 请问在VB6.0中如何获得已知行和列中存放的数值?
- 字符串问题
- VB與Oracle問題
- VB6:如何用mshflexgrid控件对表进行手工输入??
- 数据库操控问题,(详情见内)希望能到得到您的不吝赐教,在下万分感激,偶在线等候您的答复.
- 我在用adodc控件和网格控件删除记录遇到的问题
- 在vb6.0报表中怎么用“select distinct ..from...”?
- 各位大虾,哪有把pdf文件转换成txt的原码,或者能指导乍么做。
- 关于窗口最大最小化按钮的问题
- 关于窗体最大最小化按钮的问题
if oCnn.State=0 then oCnn.Close oCnn.Open strLink '打开新数据库 Dim cmd As ADODB.Command
Dim rst2 As ADODB.Recordset
Set cmd = New ADODB.Command
cmd.ActiveConnection = oCnn
cmd.CommandType = adCmdText'可能是由于你新选择的数据库中没有“测试记录表”这个表!
¥ cmd.CommandText = "select * from 测试记录表"
On Error GoTo MyError '数据库格式不正确,转到异常处理部分
Set rst2 = cmd.Execute
Set cmd=nothing