16,553
社区成员
发帖
与我相关
我的任务
分享
Imports ADOX
Public Class Form
Private Sub btnCreatAccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreatAccess.Click
Dim AccessName As String
Dim AccessPath As String
Dim TableName As String
Dim Field() As String
AccessName = TextBox1.Text.ToString
AccessPath = Application.StartupPath
TableName = "成绩表"
Field = {"d", "f", "g", "h"}
CreatAccess(AccessName, AccessPath, TableName, Field)
End Sub
Public Function CreatAccess(ByVal AccessName As String, ByVal AccessPath As String, ByVal TableName As String, ByVal Field() As String) As Boolean
Try
Dim CAT As Catalog = New ADOX.Catalog
CAT.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & AccessPath & "\" & AccessName & ".mdb")
Dim objTable As ADOX.Table = New ADOX.Table
'objTable.ParentCatalog = CAT
objTable.Name = TableName
'set autoID and primary key
Dim col As New ADOX.Column
col.ParentCatalog = CAT
col.Name = "ID"
col.Type = DataTypeEnum.adInteger
col.Properties("AutoIncrement").Value = True
col.Properties("Jet OLEDB:Allow Zero Length").Value = True
objTable.Columns.Append(col, DataTypeEnum.adInteger, 0)
objTable.Keys.Append("Primary", KeyTypeEnum.adKeyPrimary, "ID")
'creat field and updata it
Dim i As Integer
Dim num As Integer
num = Field.GetUpperBound(0)
For i = 0 To num
objTable.Columns(i).ParentCatalog = CAT
objTable.Columns.Append(Field(i), DataTypeEnum.adWChar, 0)
objTable.Columns(i).Properties("Jet OLEDB:Allow Zero Length").Value = True
Next
CAT.Tables.Append(objTable)
objTable = Nothing
CAT = Nothing
'Dim MyConnection As ADODB.Connection = New ADODB.Connection
'MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & AccessPath & "\" & AccessName & ".mdb"
'MyConnection.Open()
'MyConnection.Close()
'MyConnection = Nothing
Return True
Catch ex As Exception
MessageBox.Show(ex.Message, "Alarm", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
End Class
Imports ADOX
Public Class Form
Public Function CreatAccess(ByVal AccessName As String, ByVal AccessPath As String, ByVal TableName As String, ByVal Field() As String) As Boolean
Try
Dim CAT As Catalog = New ADOX.Catalog
'Creat access
CAT.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & AccessPath & "\" & AccessName & ".mdb")
'creat updata table data
Dim objTable As ADOX.Table = New ADOX.Table
objTable.Name = TableName
'set autoID and primary key
Dim col As New ADOX.Column
col.ParentCatalog = CAT
col.Name = "ID"
col.Type = DataTypeEnum.adInteger
col.Properties("AutoIncrement").Value = True
col.Properties("Jet OLEDB:Allow Zero Length").Value = True
objTable.Columns.Append(col, DataTypeEnum.adInteger, 0)
objTable.Keys.Append("Primary", KeyTypeEnum.adKeyPrimary, "ID")
'creat field and updata it
Dim i As Integer
Dim num As Integer
num = Field.GetUpperBound(0)
For i = 0 To num
objTable.Columns(i).ParentCatalog = CAT
objTable.Columns.Append(Field(i), DataTypeEnum.adWChar, 0)
objTable.Columns(i).Properties("Jet OLEDB:Allow Zero Length").Value = True
Next
'updata table
CAT.Tables.Append(objTable)
objTable = Nothing
'release access.ldb
Dim MyConnection As ADODB.Connection = New ADODB.Connection
MyConnection = CAT.ActiveConnection
MyConnection.Close()
'release COM
System.Runtime.InteropServices.Marshal.ReleaseComObject(MyConnection)
System.Runtime.InteropServices.Marshal.ReleaseComObject(CAT)
CAT = Nothing
MyConnection = Nothing
Return True
Catch ex As Exception
MessageBox.Show("数据库未成功建立,请检查!" & vbCrLf & "错误提示:" & ex.Message, "Alarm", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
End Class