Access 03中 用SQL语句 实现:判断表“DATA”是否存在,如不存在则创建,如已存在,则不处理

2025-01-23 06:23:48
推荐回答(1个)
回答1:

由于ACCESS数据库不支持存储过程,它无法实现一句SQL判断某表是否存在并在不存在时创建它。例如这样:

create table DATA(id text(10) primary key,Data text(100))
where not exists(
select Name from MsysObjects where type=1 and Flags=0 and Name='DATA'
)

怎么办?可以退而求其次用ACCESS VBA编程予以实现。下面是用命令按钮实现

“判断表“DATA”是否存在,如不存在则创建,如已存在,则不处理”的示例代码供参考

Private Sub Command3_Click()
'本代码运行需要引用ADO类库
Dim rs As New ADODB.Recordset
Dim strSql As String
'编写检索出DATA表的SQL语句
strSql = "select Name from MsysObjects where type=1 and Flags=0 and Name='DATA'"
rs.Open strSql, CurrentProject.Connection, adOpenStatic, adLockReadOnly
If rs.RecordCount < 1 Then
    strSql = "create table DATA(id text(10) primary key,Data text(100))"
    '创建DATA表
    CurrentProject.Connection.Execute strSql
    MsgBox "DATA表创建成功"
Else
    MsgBox "DATA表已经存在"
End If
End Sub