编程开发 > ACCESS > 文章内容

如何重命名后台数据库的表文件名称

2011-4-3编辑:lily

对于如何更改表或者其他数据库对象的名字有以下几种方式:

方法一:更改表名,调用 ADOX 即可 (测试环境为ADOX2.7)
Function Test()
    Debug.Print renameTableName("b", "cxcd")
End Function
Function renameTableName(strOldName As String, strNewName As String) As Boolean
    On Error Resume Next
    Dim tbl As ADOX.Table
    Dim cat As New ADOX.Catalog
    Set cat.ActiveConnection = CurrentProject.Connection
    '上面这句中 CurrentProject.Connection 在VB中要更改为已经open的connection对象
    For Each tbl In cat.Tables
        If tbl.Name = strOldName Then tbl.Name = strNewName
    Next
    If Err.number <> 0 Then
        renameTableName = False
    Else
        renameTableName = True
    End If
End Function

方法二:DoCmd.Rename "新表名", acTable, "原表名"

Rename 方法

方法三:也可以使用 DAO 来更改表名
'请在VBE 界面中的 菜单 -> 工具 -> 引用 中选取 Microsoft DAO 3.6 Object Library.
CurrentDb.TableDefs("OldName").Name = "NewName"
'或者写一个枚举也可以
Sub Test()
    Dim Tbl As DAO.TableDef
    For Each Tbl In CurrentDb.TableDefs
        If Tbl.Name = "OldName" Then 
            Tbl.Name = "NewName"
            Exit For
        End If
    Next
End Sub

 

Rename 方法在 Visual Basic 中执行 Rename 操作。

expression.Rename(NewName, ObjectType, OldName)

expression   必需。返回 DoCmd 对象的表达式。

NewName  Variant 型,必需。字符串表达式,代表要重新命名的对象的新名称。这个新名称必须符合 Microsoft Access 对象的对象命名规则。

ObjectType  AcObjectType,可选。要重命名的对象的类型。

AcObjectType 可以是下列 AcObjectType 常量之一: 
acDataAccessPage 
acDefault 默认 
acDiagram 
acForm 
acFunction 
acMacro 
acModule 
acQuery 
acReport 
acServerView 
acStoredProcedure 
acTable 

OldName  Variant 型,可选。字符串表达式,代表由 ObjectType 参数指定的类型的有效对象名称。如果在某个类库数据库中执行包含 Rename 方法的 Visual Basic 代码,Microsoft Access 将首先在该类库数据库中搜索具有该名称的对象,然后再到当前数据库中搜索。

说明
有关该操作及其参数如何工作的详细信息,请参阅该操作的主题。

如果将 ObjectType 和 OldName 参数留空(对于 ObjectType 参数,假设其为默认常量,即 acDefault),Microsoft Access 将重新命名在“数据库”窗口中选择的对象。若要选择“数据库”窗口中的对象,可以使用 SelectObject 操作或 SelectObject 方法,并将“在‘数据库’窗口中”参数设为“是”(True)。

如果将 ObjectType 和 OldName 参数留空,则在 NewName 参数后面不要使用逗号。

示例
下面的示例对“Employees”表进行重命名。

DoCmd.Rename "Old Employees Table", acTable, "Employees"

关于自定义自动编号起始号的问题

热点推荐

登录注册
触屏版电脑版网站地图