ado+access2000怎么判断数据库中指定的表存在否,不存在怎么处理

downseng 2002-05-19 10:08:03
ado+access2000怎么判断数据库中指定的表存在否,不存在怎么处理
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
topikachu 2002-05-20
  • 打赏
  • 举报
回复
用openschema方法
具体请参考ado帮助
OpenSchema 方法范例
该范例使用 OpenSchema 方法显示 Pubs 数据库内每个表的名称和类型。

Public Sub OpenSchemaX()

Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String

Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn

Set rstSchema = cnn1.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
Debug.Print "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close

cnn1.Close

End Sub

至于不存在,那么看你程序的目的了,或者创建一个表.或者程序报错.
funboy88 2002-05-20
  • 打赏
  • 举报
回复
有一个专门判断表是否存在的语句,一时不记得啦,在SQL server 2000中可以找到,
zhengchong 2002-05-20
  • 打赏
  • 举报
回复
给你写个函数,试一试
Private Function FindTable() As Boolean
Dim cn As New adoDB.Connection
Dim RS As New adoDB.Recordset

FindTable = False
If cn.State = 0 Then cn.Open ConnectStr 'ConnectStr 为连接串
If RS.State = 1 Then RS.Close
Set RS = cn.OpenSchema(adSchemaTables)
Do While Not RS.EOF
Select Case RS(2).Value
Case "MSysRelationships", "MSysQueries", "MSysObjects", "MSysModules2", "MSysModules", "MSysACEs", "MSysAccessObjects"
Case Else
If FindTableName = RS(2).Value Then
FindTable = True
Exit Function
End If
End Select
RS.MoveNext
Loop
End Function
lzj_freedom 2002-05-20
  • 打赏
  • 举报
回复
dim a as tabledef
for each a in currentdb.tabledefs
if a.name=XXX then
msgbox "Find"
end if
next
好像是dao的,试试看吧。:)
lzj_freedom 2002-05-20
  • 打赏
  • 举报
回复
dim a as tabledef
for each a in currentdb.tabledefs
if a.name=XXX then
msgbox "Find"
exit sub
end if
next
naomi77 2002-05-20
  • 打赏
  • 举报
回复
adodc的connectstring中不是有“测试连接”吗?
oarsman 2002-05-19
  • 打赏
  • 举报
回复
这个问题的一般解决方法是试着打开这个表,如果程序出错,通过errnumber对象,判断出出错的原因是表不存在,然后相应的进行处理,如果不出错,那么就可以直接用了!代码可以这样:
private sub a()
on error goto l
打开表;
进行操作;
exit sub
l:

if err.number=表不存在的错误号(自己可以查,我记不清了!) then
错误时的处理程序
end if
end

这样就可以了!当然还有其他方法了!不过这个比较简单!



Excel VBA与数据库整合应用范例精讲(范例文件代码) 内容简介   《Excel VBA 数据库整合应用范例精讲》用180个实例介绍了利用Excel VBA来操作数据库(包括Access、SQL Server和FoxPro)的实用方法和技巧。   全书共11章。第1~6章是利用Excel VBA操作Access数据库的实例;第7~8章是利用Excel VBA操作SQL Server数据库和FoxPro数据库的方法和技巧实例;第9~10章是将工作簿当作数据库以及将文本文件当作数据库进行操作的方法和技巧实例。第11章以一个具有较大使用价值的固定资产管理系统为案例,详细介绍Excel VBA开发管理系统的过程。每个实例分析透彻,代码完整,技巧全面,使用得心应手。 目录 第1章 动态创建Access数据库和数据 实例1-1 利用DAO创建数据库和数据 实例1-2 利用ADOX创建数据库和数据 实例1-3 利用SQL语句创建数据库和数据 实例1-4 在已有的数据库创建数据(DAO) 实例1-5 在已有的数据库创建数据ADOX) 实例1-6 在已有的数据库创建数据(SQL,Command对象) 实例1-7 在已有的数据库创建数据(SQL,Recordset对象) 实例1-8 利用Access对象创建数据库和数据 实例1-9 利用Access对象在已有的数据库创建数据 实例1-10 利用工作数据创建数据ADOX) 实例1-11 利用工作数据创建数据ADO+SQL) 实例1-12 利用工作数据创建数据(DAO) 实例1-13 利用已有的数据创建新数据ADO) 实例1-14 利用已有的数据创建新数据(DAO) 实例1-15 利用已有的数据创建新数据Access) 第2章 获取Access数据库信息 实例2-1 检查数据存在ADO) 实例2-2 检查数据存在ADOX) 实例2-3 检查数据存在(DAO) 实例2-4 检查数据存在Access) 实例2-5 获取数据库所有的名称和类型(ADO) 实例2-6 获取数据库所有的名称和类型(ADOX) 实例2-7 获取数据库所有的名称(DAO) 实例2-8 获取数据库所有数据名称(ADO) 实例2-9 获取数据库所有数据名称(ADOX) 实例2-10 获取数据库所有数据名称(DAO) 实例2-11 获取数据库所有数据名称(Access) 实例2-12 检查某字段是存在ADO) 实例2-13 检查某字段是存在ADOX) 实例2-14 检查某字段是存在(DAO) 实例2-15 检查某字段是存在Access) 实例2-16 获取数据库某数据的所有字段信息(ADO) 实例2-17 获取数据库某数据的所有字段信息(ADOX) 实例2-18 获取数据库某数据的所有字段信息(DAO) 实例2-19 获取数据库某数据的所有字段信息(Access) 实例2-20 获取数据库的所有查询信息(ADOX) 实例2-21 获取数据库的所有查询信息(DAO) 实例2-22 获取数据库的模式信息(OpenSchema) 实例2-23 获取的创建日期和最后更新日期(ADOX) 实例2-24 获取的创建日期和最后更新日期(DAO) 第3章 查询获取Access数据库记录数据 实例3-1 将数据库记录数据全部导入到Excel工作ADO,之一) 实例3-2 将数据库记录数据全部导入到Excel工作ADO,之二) 实例3-3 将数据库记录数据全部导入到Excel工作ADO,之三) 实例3-4 将数据库记录数据全部导入到Excel工作(DAO,之一) 实例3-5 将数据库记录数据全部导入到Excel工作(DAO,之二) 实例3-6 将数据库记录数据全部导入到Excel工作(QueryTable集合) 实例3-7 将数据库的某些字段的记录数据导入到Excel工作ADO) 实例3-8 将数据库的某些字段记录数据导入到Excel工作(DAO) 实例3-9 查询前面的若干条记录(全部字段)(TOP) 实例3-10 查询前面的若干条记录(部分字段)(TOP) 实例3-11 查询不重复的字段记录(DISTINCT) 实例3-12 利用Like运算符进行模糊查询 实例3-13 查询某一区间内的记录(BETWEEN) 实例3-14 查询存在于某个集合里面的记录(IN) 实例3-15 将查询结果进行排序(ORDER BY) 实例3-16 进行复杂条件的查询(WHERE) 实例3-17 利用合计函数进行查询(查询最大值和最小值) 实例3-18 利用合计函数进行查询(查询合计值和平均值) 实例3-19 将一个查询结果作为查询条件进行查询 实例3-20 将查询结果进行分组(GROUP BY) 实例3-21 将查询结果进行分组(HAVING) 实例3-22 通过计算列进行查询 实例3-23 使用IS NULL运算符进行查询 实例3-24 使用COUNT函数进行查询 实例3-25 使用FIRST函数与LAST函数查询第一条记录和最后一条记录的字段 实例3-26 使用Parameters参数动态查询记录(DAO):指定单个参数 实例3-27 使用Parameters参数动态查询记录(DAO):指定多个参数 实例3-28 使用Parameters参数动态查询记录(ADO):指定单个参数 实例3-29 使用Parameters参数动态查询记录(ADO):指定多个参数 实例3-30 使用别名查询数据库 实例3-31 将查询结果作为窗体控件的源数据 实例3-32 通过窗体控件查询浏览数据库记录 实例3-33 多查询(WHERE连接) 实例3-34 多查询(内连接INNER JOINT) 实例3-35 多查询(左外连接LEFT OUTER JOINT) 实例3-36 多查询(右外连接RIGHT OUTER JOINT) 实例3-37 多查询(子查询WHERE,ANY,SOME) 实例3-38 多查询(子查询EXISTS,NOT EXISTS) 实例3-39 从两个数据查询出都存在的记录 实例3-40 从两个数据查询出只存在于某个数据的记录 实例3-41 将查询结果生成一个数据 实例3-42 将查询结果保存为一个XML文件 实例3-43 利用工作实现记录的分页显示 实例3-44 利用窗体实现记录的分页显示 第4章 编辑Access数据库数据 实例4-1 添加新记录(ADO+AddNew) 实例4-2 添加新记录(ADO+SQL) 实例4-3 添加新记录(DAO+AddNew) 实例4-4 添加新记录(DAO+SQL) 实例4-5 添加新记录(Access+SQL) 实例4-6 修改更新特定记录(ADO+SQL) 实例4-7 修改更新特定记录(DAO+SQL) 实例4-8 修改更新特定记录(Access+SQL) 实例4-9 修改更新全部记录(ADO+SQL) 实例4-10 修改更新全部记录(DAO+SQL) 实例4-11 修改更新全部记录(Access+SQL) 实例4-12 删除特定记录(ADO+SQL) 实例4-13 删除特定记录(DAO+SQL) 实例4-14 删除特定记录(Access+SQL) 实例4-15 删除全部记录(ADO+SQL) 实例4-16 删除全部记录(DAO+SQL) 实例4-17 删除全部记录(Access+SQL) 实例4-18 通过窗体编辑记录 第5章 将Excel工作数据导入到Access数据库 实例5-1 将整个工作数据都保存为新Access数据库Access) 实例5-2 将工作的某些区域数据保存为新Access数据库Access) 实例5-3 将工作簿的所有工作数据分别保存为不同的数据Access) 实例5-4 将多个工作簿的某个工作数据汇总为新Access数据库Access) 实例5-5 将多个工作簿的某个工作数据保存为不同的数据Access) 实例5-6 将工作数据保存到已有的Access数据库(循环方式)(ADO) 实例5-7 将工作数据保存到已有的Access数据库(循环方式)(DAO) 实例5-8 将工作数据保存到已有的Access数据库(数组方式)(ADO) 实例5-9 将工作数据保存到已有的Access数据库(数组方式)(DAO) 实例5-10 将工作簿的所有工作数据分别保存为不同的数据ADO) 实例5-11 将工作簿的所有工作数据分别保存为不同的数据(DAO) 第6章 操作Access数据 实例6-1 打开数据库和数据(GetObject函数) 实例6-2 打开数据库和数据(CreateObject函数) 实例6-3 删除数据ADO) 实例6-4 删除数据ADOX) 实例6-5 删除数据(DAO+DELETE) 实例6-6 删除数据(DAO+SQL) 实例6-7 删除数据Access) 实例6-8 为数据增加字段(ADO) 实例6-9 为数据增加字段(ADOX) 实例6-10 为数据增加字段(DAO) 实例6-11 为数据增加字段(Access) 实例6-12 删除字段(ADO) 实例6-13 删除字段(ADOX) 实例6-14 删除字段(DAO) 实例6-15 删除字段(Access) 实例6-16 改变字段的类型(ADO) 实例6-17 改变字段的类型(DAO) 实例6-18 改变字段的类型(Access) 实例6-19 改变字段的长度(ADO) 实例6-20 改变字段的长度(DAO) 实例6-21 改变字段的长度(Access) 实例6-22 重命名数据Access) 实例6-23 复制数据Access) 实例6-24 复制数据ADO) 实例6-25 复制数据(DAO) 实例6-26 通过窗体维护数据库 第7章 操作SQL Server数据库 实例7-1 判断SQL Server数据库存在ADO) 实例7-2 检查数据存在ADOX) 实例7-3 创建新的SQL Server数据库和数据ADO) 实例7-4 在已有的SQL Server数据库创建数据ADO) 实例7-5 从SQL Server数据库服务器删除数据库ADO) 实例7-6 从SQL Server数据库删除数据ADO) 实例7-7 将SQL Server数据库的数据导入到Excel工作ADO) 实例7-8 将SQL Server数据库的数据导入到Excel工作(DAO) 实例7-9 查询获取SQL Server数据库的数据(ADO) 实例7-10 查询获取SQL Server数据库的数据(DAO) 实例7-11 将工作数据导入到SQL Server数据库ADO) 实例7-12 向SQL Server数据库添加记录的一般方法 实例7-13 将SQL Server数据库转换为Access数据库 实例7-14 将Access数据库转换为SQL Server数据库 第8章 操作FoxPro数据库 实例8-1 将FoxPro数据库全部数据导入到Excel工作 实例8-2 查询获取FoxPro数据库数据 实例8-3 将Excel工作数据保存到FoxPro数据库 实例8-4 判断FoxPro数据库的字段是存在 实例8-5 获取FoxPro数据库的字段信息 第9章 将Excel工作簿当作数据库来操作 实例9-1 从工作簿的某个工作查询获取数据(ADO) 实例9-2 从工作簿的全部工作查询获取数据(ADO) 实例9-3 利用DAO从工作查询数据 实例9-4 查询其他工作簿的数据(ADO) 实例9-5 获取其他工作簿的工作名称清单(ADOX) 实例9-6 利用ADO对工作数据进行多重排序 实例9-7 利用ADO按照字符的长度对数据进行排序 实例9-8 比较两张,将两个相同的行数据抓取出来 实例9-9 比较两张,将只存在于某个的行数据抓取出来 实例9-10 删除工作数据区域内的所有空行 第10章 将文本文件当作数据库来操作 实例10-1 利用ADO导入文本文件的全部内容 实例10-2 利用DAO导入文本文件的全部内容 实例10-3 利用ADO导入文本文件的部分内容 实例10-4 利用DAO导入文本文件的部分内容 实例10-5 利用ADO获取文本文件的行数和列数 实例10-6 利用ADO将超过65536行的文本文件数据导入到Excel工作 实例10-7 将工作全部数据保存为文本文件(SaveAs) 实例10-8 将工作全部数据保存为文本文件(循环) 实例10-9 将数据库数据导出为文本文件 实例10-10 将文本文件保存为Access数据库Access) 实例10-11 将文本文件保存为Access数据库ADO+ADOX) 第11章 Excel VBA开发数据库管理系统 11.1 固定资产管理系统的总体设计 11.1.1 固定资产管理系统功能模块 11.1.2 固定资产管理系统数据库和数据的设计 11.1.3 设计系统工作簿 11.1.4 设计系统的自定义菜单 11.1.5 引用对象库 11.2 系统管理模块设计 11.2.1 用户名和密码的保存 11.2.2 “用户登录”窗口结构设计 11.2.3 “用户登录”窗体程序代码设计 11.2.4 “修改用户名”窗体结构设计 11.2.5 “修改用户名”窗体的程序代码设计 11.2.6 “修改密码”窗体结构设计 11.2.7 “修改密码”窗体的程序代码设计 11.3 基础资料管理模块设计 11.4 固定资产日常管理模块设计 11.4.1 固定资产日常管理窗体的结构设计 11.4.2 固定资产日常管理窗体的程序代码设计 11.4.3 “固定资产查询”窗体的结构设计 11.4.4 “固定资产查询窗体”的程序代码设计 11.4.5 固定资产日常管理模块的应用 11.5 报输出模块设计 11.5.1 固定资产折旧计算方法 11.5.2 生成固定资产卡片子模块的设计 11.5.3 生成统计报子模块的设计 11.5.4 生成固定资产折旧子模块的设计 11.5.5 编制折旧费用分配子模块的设计 11.6 系统菜单转换模块的设计 11.6.1 恢复Excel系统菜单 11.6.2 恢复固定资产管理系统自定义菜单 11.7 为工作簿指定Open和BeforeClose事件 11.7.1 为工作簿指定Open事件 11.7.2 为工作簿指定BeforeClose事件

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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