用vb在一个已经存在的access数据库中,建立表,我想如果已经有一个同名的表,就提示已经存在,应该怎样做

ufsoft 2001-08-10 10:38:01
...全文
245 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ufsoft 2001-08-10
  • 打赏
  • 举报
回复
她提示我AdoRst.Find ("table_name='aaa'")没有发现对象
fontain 2001-08-10
  • 打赏
  • 举报
回复

Dim cnn As New ADODB.Connection
Dim AdoRst As ADODB.Recordset
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sss.mdb;Persist Security Info=False;Jet OLEDB:Database Password=1111"
cnn.Open
Set AdoRst = cnn.OpenSchema(adSchemaTables)
AdoRst.Find ("table_name='aaa'")
If AdoRst.EOF Then
MsgBox "未发现"
Else
MsgBox "OK"
End If
一川烟草123 2001-08-10
  • 打赏
  • 举报
回复
on error goto prcerr
err.number=0
開始事務
sql語句創建表
提交事務
prcerr:
select case err.number
case 重復表的錯誤號
提示用戶表已經存在
err.clear
取消事物
case else
......
end select
exit sub

ufsoft 2001-08-10
  • 打赏
  • 举报
回复
首先声明,我使用ado的sql语句来创建的表。
我的email是:jhl@qd.ufsoft.com.cn
night_cai 2001-08-10
  • 打赏
  • 举报
回复
for each table in dao.tables
if "yourname"=table.name then
msgbox "The Table" & yourname & "exist"
endit

next table
'use dao3.5 win98 vb6
tangbei 2001-08-10
  • 打赏
  • 举报
回复
先查找一个表是否存在,
DAO:
DIM TBL AS TABLEDEF
DIM BLNEXIST AS BOOLEAN
FOR EACH TBL IN DB.TABLEDEFS
IF TBL.NAME="AAA" THEN
BLNEXIST=TRUE
EXIT FOR
END IF
NEXT
bdzwc 2001-08-10
  • 打赏
  • 举报
回复
on error goto ---
Tackie 2001-08-10
  • 打赏
  • 举报
回复
你的意思就是说在建表之前先获得本数据库中所有表名。
我有源码,给我你的mail
fontain 2001-08-10
  • 打赏
  • 举报
回复
dao好象是db.tables,记不清了
niqiu 2001-08-10
  • 打赏
  • 举报
回复
sub ....
on error go to handl
create table.......
exit sub
handl:
if err.number=... then
msgbox "该数据库已经存在,不要添乱!",vbinformation,"提示信息"
else
...
end if
fontain 2001-08-10
  • 打赏
  • 举报
回复
用openschema先查一下(ado)
wangfeng 2001-08-10
  • 打赏
  • 举报
回复
我来学习学习!
wbdx 2001-08-10
  • 打赏
  • 举报
回复
这么多人,我表示非常 gz


wangfeng 2001-08-10
  • 打赏
  • 举报
回复
我来学习学习!
wangfeng 2001-08-10
  • 打赏
  • 举报
回复
我来学习学习!
fontain 2001-08-10
  • 打赏
  • 举报
回复
打错了吧,必须是table_name,不是tablename
复制过去运行,我已经验证过的
注意,你的库必须存在
lanren_me 2001-08-10
  • 打赏
  • 举报
回复
...
on error goto aa '建表前
....'建表完毕
on error goto 0
...其它操作

aa:
提示
little_hero 2001-08-10
  • 打赏
  • 举报
回复
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim adors As New ADODB.Recordset
Private Sub Command1_Click()
Set adors = conn.OpenSchema(adSchemaTables)
adors.Find ("table_name='ok'")
If adors.EOF = False Then
sqlstr = "drop table ok"
conn.Execute sqlstr
MsgBox "删除OK表成功!"
Else
MsgBox "OK表不存在!,无法完成删除!"
End If
End Sub

Private Sub Command3_Click()
Set adors = conn.OpenSchema(adSchemaTables)
adors.Find ("table_name='ok'")
If adors.EOF Then
sqlstr = "create table ok (name char(10) not null)"
conn.Execute sqlstr
MsgBox "OK表创建成功!"
Else
MsgBox "OK表已存在!你将不能创建"
End If
End Sub

Private Sub Form_Load()
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & App.Path & "\telbook.mdb;Persist Security Info=false;Jet OLEDB:Database Password=flydragon"
conn.Open connstr
sqlstr = "select * from telbook"
rs.Open sqlstr, conn, adOpenKeyset, adLockOptimistic
End Sub
little_hero 2001-08-10
  • 打赏
  • 举报
回复
adorst必须先创建为recordset对象

1,217

社区成员

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

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