|
我在 test 方法中调用新增数据表的方法
结果提示user表不存在 但是我在access中刷新一下列表之后 user表出来了
究竟是 Application.RefreshDatabaseWindow 这个方法无效还是什么问题??
代码如下:
Function test()
’调用方法
creatTbl
'刷新
Application.RefreshDatabaseWindow
Debug.Print TableIsIn("user")
'插入数据
CurrentDb.Execute ("insert into user(ID,userName) values('1','didi')")
End Function
'判断表是否已存在
Function TableIsIn(TableName As String) As Boolean
'刷新数据库
Application.RefreshDatabaseWindow
TableIsIn = True
On Error Resume Next
Dim strSQL As String
strSQL = "select * from " & TableName
CurrentDb.Execute strSQL
If Err.Number = 3078 Then
TableIsIn = False
End If
End Function
'新建表
Sub creatTbl()
Dim objCatalog
Set objCatalog = VBA.CreateObject("ADOX.Catalog")
Dim sConStr As String
Dim oTable
Dim oColumn
Dim tColumn
Set oTable = VBA.CreateObject("ADOX.Table")
Set oColumn = VBA.CreateObject("ADOX.Column")
Set tColumn = VBA.CreateObject("ADOX.Column")
Dim flag As Boolean
'刷新
Application.RefreshDatabaseWindow
flag = True
On Error Resume Next
Dim strSQL As String
strSQL = "select * from user"
CurrentDb.Execute strSQL
If Err.Number = 3078 Then
flag = False
End If
Debug.Print "是否存在" & flag
'如果存在user表 则删除
If flag Then
'关闭user表
DoCmd.close acTable, "user"
'删除
DoCmd.DeleteObject acTable, "user"
End If
'新建一个表
With oTable
'表名
.Name = "user"
'新建字段
With oColumn
.Name = "ID"
End With
'新建字段
With tColumn
.Name = "userName"
End With
.Columns.Append oColumn
.Columns.Append tColumn
End With
With objCatalog
sConStr = "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" & CurrentDb.Name
.ActiveConnection = sConStr
'添加新建的表
.Tables.Append oTable
End With
'刷新
Application.RefreshDatabaseWindow
End Sub
|
|