Private Sub Form_Load() Dim daodb As DAO.Database Dim mdbname As String
mdbname = "d:\test.mdb"
On Error Resume Next Set daodb = DBEngine.Workspaces(0).OpenDatabase(mdbname, False, False, ";pwd=密碼") If Err.Number <> 0 Then '可以根據錯誤號判斷是沒有數據庫還是數據庫已損壞 Err.Clear CreateRS mdbname End If End Sub Public Sub CreateRS(ByVal mdbname As String) Dim db As DAO.Database Dim tmp As String Dim Fld As New DAO.Field Dim rst As New DAO.TableDef Dim lstFld As Variant '字段名數組 Dim lstFldType As Variant '字段數據類型數組 Dim k As Integer, m As Integer
Set db = DBEngine.Workspaces(0).CreateDatabase(mdbname, dbLangGeneral, dbEncrypt) db.NewPassword "", "最密碼"
For k = 3 To 4 tmp = "create table tbl_" & k & "([dingdanhao] text(30))" db.Execute tmp
db.TableDefs.Refresh Set rst = db.TableDefs("tbl_" & k)
For m = 0 To 24 Fld.Name = lstFld(m) Fld.Type = lstFldType(m) If lstFldType(m) = dbText Then Fld.Size = 50 rst.Fields.Append Fld Set Fld = Nothing Next m Set rst = Nothing Next
Private Sub Form_Load()
Dim daodb As DAO.Database
Dim mdbname As String
mdbname = "d:\test.mdb"
On Error Resume Next
Set daodb = DBEngine.Workspaces(0).OpenDatabase(mdbname, False, False, ";pwd=密碼")
If Err.Number <> 0 Then '可以根據錯誤號判斷是沒有數據庫還是數據庫已損壞
Err.Clear
CreateRS mdbname
End If
End Sub
Public Sub CreateRS(ByVal mdbname As String)
Dim db As DAO.Database
Dim tmp As String
Dim Fld As New DAO.Field
Dim rst As New DAO.TableDef
Dim lstFld As Variant '字段名數組
Dim lstFldType As Variant '字段數據類型數組
Dim k As Integer, m As Integer
Set db = DBEngine.Workspaces(0).CreateDatabase(mdbname, dbLangGeneral, dbEncrypt)
db.NewPassword "", "最密碼"
tmp = "create table tbl_1([Fld1] text(30),[Fld2] date,[Fld3] date,[Fld4] text(5),[Fld5] text(10),[Fld6] text(10),[Fld7] date,[Fld8] integer,[Fld9] memo)"
db.Execute tmp
tmp = "create table tbl_2([Fld1] text(30),[Fld2] date,[Fld3] date,[Fld4] text(5),[Fld5] text(10),[Fld6] text(10),[Fld7] date,[Fld8] integer,[Fld9] memo)"
db.Execute tmp
'如果tmp太長,可用以下方法增加新的字段
lstFld = Array("Fld10", "Fld11", "Fld12", "Fld13", "Fld14", "Fld15", "Fld16", "Fld17", "Fld18", "Fld19", "Fld20", "Fld21", "Fld22", "Fld23", "Fld24", "Fld25", "Fld26", "Fld27", "Fld28", "Fld29", "Fld30", "Fld31", "Fld32", "Fld33", "Fld34")
lstFldType = Array(dbDouble, dbText, dbDate, dbInteger, dbInteger, dbInteger, dbDouble, dbDouble, dbDouble, dbDouble, dbDouble, dbText, dbDate, dbInteger, dbDouble, dbText, dbDate, dbInteger, dbDouble, dbText, dbDate, dbInteger, dbInteger, dbMemo)
For k = 3 To 4
tmp = "create table tbl_" & k & "([dingdanhao] text(30))"
db.Execute tmp
db.TableDefs.Refresh
Set rst = db.TableDefs("tbl_" & k)
For m = 0 To 24
Fld.Name = lstFld(m)
Fld.Type = lstFldType(m)
If lstFldType(m) = dbText Then Fld.Size = 50
rst.Fields.Append Fld
Set Fld = Nothing
Next m
Set rst = Nothing
Next
db.Close
Set db = Nothing
End Sub