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

ufsoft 2001-08-10 10:38:01
...全文
213 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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对象
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2001-08-10 10:38
社区公告
暂无公告