我正在mdb文件中创建一个表。
目前我的函数添加了一个自动增量主键。
我希望使用UUID创建新行,而不是顺序整数。
可以这样做吗?
这是我目前正在使用的MDBCreateTable函数。
Function MDBCreateTable(myPath As String, TableName As String, ColumnDefinition As String) As Boolean
' ColumnDefinition structure Column1;;Datatype::Column2;;Datatype
Dim Columns() As String
Columns = Split(ColumnDefinition, "::")
Dim xCat As ADOX.catalog
Dim xTable As ADOX.Table
'Instantiate the ADOX-object.
Set xCat = New ADOX.catalog
Set xTable = New ADOX.Table
On Error GoTo Failed
Dim ConnectionString As String
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myPath & ";"
xCat.ActiveConnection = ConnectionString
'Name the table.
xTable.Name = TableName
'Create the field which also is the Primary Key (PK) field for the Table.
xTable.Columns.Append "ID", adInteger
'In order to access the properties we need to set the Parent Catalog.
xTable.ParentCatalog = xCat
xTable.Columns("ID").Properties("AutoIncrement").Value = True
'Append the PK.
xTable.Keys.Append "PrimaryKey", adKeyPrimary, "ID"
For x = 0 To UBound(Columns)
If inStB(Columns(x), ";;") Then
Select Case Split(Columns(x), ";;")(1)
Case "integer"
xTable.Columns.Append Split(Columns(x), ";;")(0), adInteger
Case "decimal"
xTable.Columns.Append Split(Columns(x), ";;")(0), adNumeric
Case "date"
xTable.Columns.Append Split(Columns(x), ";;")(0), adDate
Case Else
xTable.Columns.Append Split(Columns(x), ";;")(0), adWChar
End Select
End If
Next x
xCat.Tables.Append xTable
MDBCreateTable = True
Failed:
End Function
对于记录,此功能基于以下论坛帖子
http://www.ozgrid.com/forum/printthread.php?t=40365
这是我发现的关于使用UUID作为主键的文本
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
此外,我是使用MDB文件的新手,我目前将所有数据存储在excel工作表中,这是我第一次尝试使用MDB文件。
所以我开始创建数据库文件和下一次创建表。
(接下来我将创建从MDB文件读取和写入的函数) (我也将最终转移到vb.net,我希望ADO api在vb.net中类似,并且我没有学到它。我很难在DAO,ADO和ADODB之间进行选择,最后我随便挑选,我想) 谢谢!