引用一个当前数据库表属性函数,更改了一下原代码
CurrentDb.TableDefs("表名").Properties(1)
0:返回表名
1:返回类型(True 表, False 链接表)
2:返回创建日期
3:返回修改日期
更改后,程序关键代码如下:
Private Sub Command1_Click()
On Error GoTo Err_Command1_Click
Dim I As Integer
I = CurrentDb.TableDefs.Count - 1
'删除现有的全部链接表。表类型属性CurrentDb.TableDefs(I).Properties(1)为False
While I >= 0
'Debug.Print I, CurrentDb.TableDefs(I).Name, CurrentDb.TableDefs(I).Properties(1)
If Not CurrentDb.TableDefs(I).Properties(1) Then
DoCmd.DeleteObject acTable, CurrentDb.TableDefs(I).Name
End If
I = I - 1
Wend
Me.txtPWD.SetFocus '激活密码输入栏
SendKeys "%EC", False 'Alt+编辑(E)+复制(C)_复制密码(含键盘无法输入的字符)
SendKeys "%FGL", False 'Alt+文件(F)+获取外部数据(G)+链接表(L)
SendKeys Me.txtPath, False '输入数据库带盘符或网络地址符路径的全名
SendKeys "%K", False 'Alt+链接(K)
SendKeys "^V", False 'Ctrl+V_粘贴输入数据库密码
SendKeys "{ENTER}", False '确定回车
SendKeys "%A", False 'Alt+全选(A)_选择全部表
SendKeys "%A", False 'Alt+全选(A)_再次选择全部表,避免网络反映延迟阻断
SendKeys "{ENTER}", False '确定回车
Exit_Command1_Click:
Exit Sub
Err_Command1_Click:
MsgBox Err.Description
Resume Exit_Command1_Click
End Sub
点击下载此附件