Option ExplicitPrivate CAT As ADOX.CatalogPublic Sub CreateMDB(ByVal Path As String)
On Error GoTo ErrTrap Set CAT = New ADOX.Catalog If Right$(Path, 1) = "\" Then Path = Left$(Path, Len(Path) - 1)' ===[Create Database]===
CAT.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Path & "\DEMO.mdb;" & _
"Jet OLEDB:Database Password=;" & _
"Jet OLEDB:Engine Type=5;" CreateTables
CreateIndexes
CreateKeys Set CAT = Nothing Exit Sub
ErrTrap:
MsgBox Err.Number & " / " & Err.Description
Exit Sub
Resume
End SubPrivate Sub CreateTables()
On Error GoTo ErrTrap
Dim TBL As ADOX.Table
Set TBL = New ADOX.Table' ===[Create Table 'Tablename']===
Set TBL = New ADOX.Table
TBL.Name = "Tablename"
TBL.Columns.Append "Add", adVarWChar, 50
TBL.Columns.Append "ID", adInteger, 0
TBL.Columns("ID").Properties("AutoIncrement") = True
TBL.Columns.Append "Name", adVarWChar, 50
TBL.Columns.Append "Pho", adLongVarBinary, 0
TBL.Columns.Append "Resume", adLongVarWChar, 0
TBL.Columns.Append "TypeID", adVarWChar, 50
CAT.Tables.Append TBL Set TBL = Nothing Exit Sub
ErrTrap:
MsgBox Err.Number & " / " & Err.Description, , "Error In CreateTables"
Exit Sub
Resume
End SubPrivate Sub CreateIndexes()
On Error GoTo ErrTrap
Dim IDX As ADOX.Index
Set IDX = New ADOX.Index' ===[Create Index 'PrimaryKey']===
Set IDX = New ADOX.Index
IDX.Name = "PrimaryKey"
IDX.Columns.Append "ID"
IDX.PrimaryKey = True
IDX.Unique = True
IDX.Clustered = False
IDX.IndexNulls = adIndexNullsDisallow
CAT.Tables("Tablename").Indexes.Append IDX' ===[Create Index 'ID']===
Set IDX = New ADOX.Index
IDX.Name = "ID"
IDX.Columns.Append "ID"
IDX.PrimaryKey = False
IDX.Unique = False
IDX.Clustered = False
IDX.IndexNulls = adIndexNullsAllow
CAT.Tables("Tablename").Indexes.Append IDX' ===[Create Index 'TypeID']===
Set IDX = New ADOX.Index
IDX.Name = "TypeID"
IDX.Columns.Append "TypeID"
IDX.PrimaryKey = False
IDX.Unique = False
IDX.Clustered = False
IDX.IndexNulls = adIndexNullsAllow
CAT.Tables("Tablename").Indexes.Append IDX Set IDX = Nothing Exit Sub
ErrTrap:
MsgBox Err.Number & " / " & Err.Description, , "Error In CreateIndexes"
Exit Sub
Resume
End SubPrivate Sub CreateKeys()
On Error GoTo ErrTrap
Dim KEY As ADOX.KEY
Dim TBL As ADOX.Table Set KEY = New ADOX.KEY
Set TBL = New ADOX.Table Set KEY = Nothing
Set TBL = Nothing Exit Sub
ErrTrap:
Select Case Err.Number
Case -2147467259 ' Index already exists - Remove it...
CAT.Tables(TBL.Name).Indexes.Delete KEY.Name
Resume
Case Else
MsgBox Err.Number & " / " & Err.Description, , "Error In CreateKeys"
Exit Sub
Resume
End Select
End Sub求大侠能够给我详细注释一下!
此为何物?有何用?
并运行一下是否成功。
On Error GoTo ErrTrap Set CAT = New ADOX.Catalog If Right$(Path, 1) = "\" Then Path = Left$(Path, Len(Path) - 1)' ===[Create Database]===
CAT.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Path & "\DEMO.mdb;" & _
"Jet OLEDB:Database Password=;" & _
"Jet OLEDB:Engine Type=5;" CreateTables
CreateIndexes
CreateKeys Set CAT = Nothing Exit Sub
ErrTrap:
MsgBox Err.Number & " / " & Err.Description
Exit Sub
Resume
End SubPrivate Sub CreateTables()
On Error GoTo ErrTrap
Dim TBL As ADOX.Table
Set TBL = New ADOX.Table' ===[Create Table 'Tablename']===
Set TBL = New ADOX.Table
TBL.Name = "Tablename"
TBL.Columns.Append "Add", adVarWChar, 50
TBL.Columns.Append "ID", adInteger, 0
TBL.Columns("ID").Properties("AutoIncrement") = True
TBL.Columns.Append "Name", adVarWChar, 50
TBL.Columns.Append "Pho", adLongVarBinary, 0
TBL.Columns.Append "Resume", adLongVarWChar, 0
TBL.Columns.Append "TypeID", adVarWChar, 50
CAT.Tables.Append TBL Set TBL = Nothing Exit Sub
ErrTrap:
MsgBox Err.Number & " / " & Err.Description, , "Error In CreateTables"
Exit Sub
Resume
End SubPrivate Sub CreateIndexes()
On Error GoTo ErrTrap
Dim IDX As ADOX.Index
Set IDX = New ADOX.Index' ===[Create Index 'PrimaryKey']===
Set IDX = New ADOX.Index
IDX.Name = "PrimaryKey"
IDX.Columns.Append "ID"
IDX.PrimaryKey = True
IDX.Unique = True
IDX.Clustered = False
IDX.IndexNulls = adIndexNullsDisallow
CAT.Tables("Tablename").Indexes.Append IDX' ===[Create Index 'ID']===
Set IDX = New ADOX.Index
IDX.Name = "ID"
IDX.Columns.Append "ID"
IDX.PrimaryKey = False
IDX.Unique = False
IDX.Clustered = False
IDX.IndexNulls = adIndexNullsAllow
CAT.Tables("Tablename").Indexes.Append IDX' ===[Create Index 'TypeID']===
Set IDX = New ADOX.Index
IDX.Name = "TypeID"
IDX.Columns.Append "TypeID"
IDX.PrimaryKey = False
IDX.Unique = False
IDX.Clustered = False
IDX.IndexNulls = adIndexNullsAllow
CAT.Tables("Tablename").Indexes.Append IDX Set IDX = Nothing Exit Sub
ErrTrap:
MsgBox Err.Number & " / " & Err.Description, , "Error In CreateIndexes"
Exit Sub
Resume
End SubPrivate Sub CreateKeys()
On Error GoTo ErrTrap
Dim KEY As ADOX.KEY
Dim TBL As ADOX.Table Set KEY = New ADOX.KEY
Set TBL = New ADOX.Table Set KEY = Nothing
Set TBL = Nothing Exit Sub
ErrTrap:
Select Case Err.Number
Case -2147467259 ' Index already exists - Remove it...
CAT.Tables(TBL.Name).Indexes.Delete KEY.Name
Resume
Case Else
MsgBox Err.Number & " / " & Err.Description, , "Error In CreateKeys"
Exit Sub
Resume
End Select
End Sub求大侠能够给我详细注释一下!
此为何物?有何用?
并运行一下是否成功。
Private Sub Command1_Click()
Call CreateMDB("C:\Temp\") '建库
Call CreateTables '建表
Call CreateIndexes '建索引
Call CreateKeys
End Sub虽然可以运行但会出错。