转莫依代码: '=================================================================================== '**准备工作:1 引用Microsoft DAO 3.6 Object Library 及以上版本 '=================================================================================== '**控件名称:DAO '**模 块 名:DaoConnAccess '**描 述:操作数据库的系列方法,公用的模块 '************************************************************************* Private DefDAOBase As DAO.Database '本模块内的数据库对象 Private DefDAOTable As DAO.TableDef '本模块内的表对象 Private DefDAOField As DAO.Field '本模块内的字段对象'************************************************************************* '**过 程 名:bCreatBase '**返 回 值:布尔值。创建成功返回True;失败返回False '**参 数:(数据库的路径+文件名,数据库的密码(可选,默认空)) '================================================== '**功 能:新建一个数据库 '************************************************************************* Public Function bCreatBase(ByVal BaseFile As String, Optional ByVal Password As String = "") As Boolean On Error Resume Next Set DefDAOBase = CreateDatabase(BaseFile, dbLangGeneral, dbEncrypt) DefDAOBase.NewPassword "", Password Set DefDAOBase = Nothing bCreatBase = (Err.Number = 0) End Function'************************************************************************* '**过 程 名:bCreatTable '**返 回 值:布尔值。创建成功返回True;失败返回False '**参 数:(数据库的路径,新建的表名,第一个字段名,字段的类型,字段的大小,此数据库的密码(可选,默认空)) '================================================== '**功 能:新建一个表,必须有一个字段 '************************************************************************* Public Function bCreatTable(ByVal MdbFile As String, ByVal TableName As String, ByVal DefFieldName As String, ByVal FieldType As DAO.DataTypeEnum, ByVal FieldSize As Long, Optional ByVal Password As String = "") As Boolean On Error Resume Next Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";") Set DefDAOTable = DefDAOBase.CreateTableDef(TableName) Set DefDAOField = DefDAOTable.CreateField(DefFieldName, FieldType, FieldSize) DefDAOTable.Fields.Append DefDAOField DefDAOBase.TableDefs.Append DefDAOTable Set DefDAOField = Nothing Set DefDAOTable = Nothing Set DefDAOBase = Nothing bCreatTable = (Err.Number = 0) End Function'************************************************************************* '**过 程 名:bReTableName '**返 回 值:布尔值。命名成功返回True;失败返回False '**参 数:(数据库的路径,旧的表名,新的表名,此数据库的密码(可选,默认空)) '================================================== '**功 能:重命名一个表 '************************************************************************* Public Function bReTableName(ByVal MdbFile As String, ByVal OldTable As String, ByVal NewTable As String, Optional ByVal Password As String = "") As Boolean On Error Resume Next Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";") Dim i As Long For i = 0 To DefDAOBase.TableDefs.Count - 1 Set DefDAOTable = DefDAOBase(i) If DefDAOTable.Name = OldTable Then Exit For Set DefDAOTable = Nothing Next DefDAOTable.Name = NewTable bReTableName = (Err.Number = 0) End Function'************************************************************************* '**过 程 名:bAddNewField '**返 回 值:布尔值。创建成功返回True;失败返回False '**参 数:(数据库的路径,表名,字段名,字段的类型,字段的大小,此数据库的密码(可选,默认空)) '================================================== '**功 能:新建一个字段 '************************************************************************* Public Function bAddNewField(ByVal MdbFile As String, ByVal TableName As String, ByVal FieldName As String, ByVal FieldType As DAO.DataTypeEnum, ByVal FieldSize As Long, Optional ByVal Password As String = "") As Boolean On Error Resume Next Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";") Dim i As Long For i = 0 To DefDAOBase.TableDefs.Count - 1 Set DefDAOTable = DefDAOBase(i) If DefDAOTable.Name = TableName Then Exit For Set DefDAOTable = Nothing Next Set DefDAOField = DefDAOTable.CreateField(FieldName, FieldType, FieldSize) DefDAOTable.Fields.Append DefDAOField Set DefDAOField = Nothing Set DefDAOTable = Nothing Set DefDAOBase = Nothing bAddNewField = (Err.Number = 0) End Function'************************************************************************* '**过 程 名:bDelTable '**返 回 值:布尔值。删除成功返回True;失败返回False '**参 数:(数据库的路径,删除的表名,此数据库的密码(可选,默认空)) '================================================== '**功 能:删除一个表 '************************************************************************* Public Function bDelTable(ByVal MdbFile As String, ByVal TableName As String, Optional ByVal Password As String = "") As Boolean On Error Resume Next Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";") DefDAOBase.TableDefs.Delete (TableName) Set DefDAOBase = Nothing bDelTable = (Err.Number = 0) End Function'************************************************************************* '**过 程 名:bDelField '**返 回 值:布尔值。删除成功返回True;失败返回False '**参 数:(数据库的路径,表名,字段名,这个数据库的密码(可选,默认空)) '================================================== '**功 能:删除一个字段 '************************************************************************* Public Function bDelField(ByVal MdbFile As String, ByVal TableName As String, ByVal FieldName As String, Optional ByVal Password As String = "") As Boolean On Error Resume Next Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";") Dim i As Long For i = 0 To DefDAOBase.TableDefs.Count - 1 Set DefDAOTable = DefDAOBase(i) If DefDAOTable.Name = TableName Then Exit For Set DefDAOTable = Nothing Next DefDAOTable.Fields.Delete (FieldName) Set DefDAOTable = Nothing Set DefDAOBase = Nothing bDelField = (Err.Number = 0) End Function
'===================================================================================
'**准备工作:1 引用Microsoft DAO 3.6 Object Library 及以上版本
'===================================================================================
'**控件名称:DAO
'**模 块 名:DaoConnAccess
'**描 述:操作数据库的系列方法,公用的模块
'*************************************************************************
Private DefDAOBase As DAO.Database '本模块内的数据库对象
Private DefDAOTable As DAO.TableDef '本模块内的表对象
Private DefDAOField As DAO.Field '本模块内的字段对象'*************************************************************************
'**过 程 名:bCreatBase
'**返 回 值:布尔值。创建成功返回True;失败返回False
'**参 数:(数据库的路径+文件名,数据库的密码(可选,默认空))
'==================================================
'**功 能:新建一个数据库
'*************************************************************************
Public Function bCreatBase(ByVal BaseFile As String, Optional ByVal Password As String = "") As Boolean
On Error Resume Next
Set DefDAOBase = CreateDatabase(BaseFile, dbLangGeneral, dbEncrypt)
DefDAOBase.NewPassword "", Password
Set DefDAOBase = Nothing
bCreatBase = (Err.Number = 0)
End Function'*************************************************************************
'**过 程 名:bCreatTable
'**返 回 值:布尔值。创建成功返回True;失败返回False
'**参 数:(数据库的路径,新建的表名,第一个字段名,字段的类型,字段的大小,此数据库的密码(可选,默认空))
'==================================================
'**功 能:新建一个表,必须有一个字段
'*************************************************************************
Public Function bCreatTable(ByVal MdbFile As String, ByVal TableName As String, ByVal DefFieldName As String, ByVal FieldType As DAO.DataTypeEnum, ByVal FieldSize As Long, Optional ByVal Password As String = "") As Boolean
On Error Resume Next
Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";")
Set DefDAOTable = DefDAOBase.CreateTableDef(TableName)
Set DefDAOField = DefDAOTable.CreateField(DefFieldName, FieldType, FieldSize)
DefDAOTable.Fields.Append DefDAOField
DefDAOBase.TableDefs.Append DefDAOTable
Set DefDAOField = Nothing
Set DefDAOTable = Nothing
Set DefDAOBase = Nothing
bCreatTable = (Err.Number = 0)
End Function'*************************************************************************
'**过 程 名:bReTableName
'**返 回 值:布尔值。命名成功返回True;失败返回False
'**参 数:(数据库的路径,旧的表名,新的表名,此数据库的密码(可选,默认空))
'==================================================
'**功 能:重命名一个表
'*************************************************************************
Public Function bReTableName(ByVal MdbFile As String, ByVal OldTable As String, ByVal NewTable As String, Optional ByVal Password As String = "") As Boolean
On Error Resume Next
Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";")
Dim i As Long
For i = 0 To DefDAOBase.TableDefs.Count - 1
Set DefDAOTable = DefDAOBase(i)
If DefDAOTable.Name = OldTable Then Exit For
Set DefDAOTable = Nothing
Next
DefDAOTable.Name = NewTable
bReTableName = (Err.Number = 0)
End Function'*************************************************************************
'**过 程 名:bAddNewField
'**返 回 值:布尔值。创建成功返回True;失败返回False
'**参 数:(数据库的路径,表名,字段名,字段的类型,字段的大小,此数据库的密码(可选,默认空))
'==================================================
'**功 能:新建一个字段
'*************************************************************************
Public Function bAddNewField(ByVal MdbFile As String, ByVal TableName As String, ByVal FieldName As String, ByVal FieldType As DAO.DataTypeEnum, ByVal FieldSize As Long, Optional ByVal Password As String = "") As Boolean
On Error Resume Next
Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";")
Dim i As Long
For i = 0 To DefDAOBase.TableDefs.Count - 1
Set DefDAOTable = DefDAOBase(i)
If DefDAOTable.Name = TableName Then Exit For
Set DefDAOTable = Nothing
Next
Set DefDAOField = DefDAOTable.CreateField(FieldName, FieldType, FieldSize)
DefDAOTable.Fields.Append DefDAOField
Set DefDAOField = Nothing
Set DefDAOTable = Nothing
Set DefDAOBase = Nothing
bAddNewField = (Err.Number = 0)
End Function'*************************************************************************
'**过 程 名:bDelTable
'**返 回 值:布尔值。删除成功返回True;失败返回False
'**参 数:(数据库的路径,删除的表名,此数据库的密码(可选,默认空))
'==================================================
'**功 能:删除一个表
'*************************************************************************
Public Function bDelTable(ByVal MdbFile As String, ByVal TableName As String, Optional ByVal Password As String = "") As Boolean
On Error Resume Next
Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";")
DefDAOBase.TableDefs.Delete (TableName)
Set DefDAOBase = Nothing
bDelTable = (Err.Number = 0)
End Function'*************************************************************************
'**过 程 名:bDelField
'**返 回 值:布尔值。删除成功返回True;失败返回False
'**参 数:(数据库的路径,表名,字段名,这个数据库的密码(可选,默认空))
'==================================================
'**功 能:删除一个字段
'*************************************************************************
Public Function bDelField(ByVal MdbFile As String, ByVal TableName As String, ByVal FieldName As String, Optional ByVal Password As String = "") As Boolean
On Error Resume Next
Set DefDAOBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd=" & Password & ";")
Dim i As Long
For i = 0 To DefDAOBase.TableDefs.Count - 1
Set DefDAOTable = DefDAOBase(i)
If DefDAOTable.Name = TableName Then Exit For
Set DefDAOTable = Nothing
Next
DefDAOTable.Fields.Delete (FieldName)
Set DefDAOTable = Nothing
Set DefDAOBase = Nothing
bDelField = (Err.Number = 0)
End Function