【发布时间】:2014-06-23 14:49:13
【问题描述】:
我需要将计算字段添加到现有表中。我知道有两种方法可以做到这一点,我想知道是否有人对哪种方法最好以及如何使它们起作用有任何意见:
- 使用 TableDef.CreateField,然后使用 TableDef.Fields.Append
- 使用 DDL Alter Table ADD COLUMN 语句
我尝试使用第一种方法,但我不断收到 3211 错误,因为 Access 无法锁定表。我没有打开桌子。但是,我从一个访问了表中当前存在哪些字段的表单调用 CreateField。
这里是调用 CreateField 的代码:
`
Public Sub AddFieldToTable(strTable As String, strField As String, nFieldType As Integer)
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
On Error GoTo ErrorHandler
Set db = CurrentDb
Set tdf = db.TableDefs(strTable)
Set fld = tdf.CreateField(strField, nFieldType)
tdf.Fields.Append fld
MsgBox "The field named [" & strField & "] has been added to table [" & strTable & "]."
Set tdf = Nothing
Set db = Nothing
Exit Sub
ErrorHandler:
MsgBox "An error has occurred. Number: " & Err.Number & ", description: " & Err.Description
Exit Sub
End Sub
`
我在 tdf.fields.append 行收到错误。执行 ALTER TABLE 语句会更好吗?有什么取舍?
【问题讨论】: