在access数据库中用drop table if exists判断某个表是否存在为何提示 语法错误

来源:百度知道 编辑:UC知道 时间:2024/05/09 08:43:10
在access数据库中用VBA如何判断某个表是否存在,若存在则删除它
我用下面的语句
drop table if exists [tablename]
在运行时,提示DROP TABLE 或 DROP INDEX 语法错误。
有高手能指点一下么?
最好能写全一点!!
我试作用下面的方式能实现:(不过太累赘了)
Dim TabN As String '要查找的表名
Dim Taby As Boolean '表是否存在的标志,表存在即为真
Taby = False '将标志位清零
TabN = "C1Ss"

Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
'在表中查找,表是否存在
For Each obj In dbs.AllTables
If TabN = obj.Name Then Taby = True
Next obj
'在查询中查找,表是否存在
For Each obj In dbs.AllQueries
If TabN = obj.Name Then Taby = True
Next obj

If Taby = True Then MsgBox "表存在,查询存在"

/// <summary>
/// 删除Access指定表
/// </summary>
/// <param name="pPath"></param>
/// <param name="pTableName"></param>
/// <returns></returns>
public static bool DeleteAccessTable(string pPath, string pTableName)
{
bool vCheck = true;
try
{
string vConn = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}'", pPath);
string vCommSql = string.Format(" drop table [{0}] ", pTableName);
OleDbConnection olconn = new OleDbConnection(vConn);
OleDbCommand olcomm = new OleDbCommand(vCommSql, olconn);
olconn.Open();
olcomm.ExecuteNonQuery();
olconn.Close();
}
catch (Exc