在列中插入默认值(访问数据库)

时间:2008-12-09 14:53:47

标签: ms-access alter

如何在Access中的表格列中插入默认值? 我用这个指令:

ALTER TABLE Tabella ADD Campo Double DEFAULT 0
ALTER TABLE Tabella ADD Campo Double DEFAULT (0)
ALTER TABLE Tabella ADD Campo DEFAULT 0
ALTER TABLE Tabella ADD Campo DEFAULT (0)
ALTER TABLE Tabella ADD Campo SET DEFAULT 0
ALTER TABLE Tabella ADD Campo SET DEFAULT (0)

但所有这些都会导致错误。我该怎么办呢?

4 个答案:

答案 0 :(得分:2)

来自MSDN

  

可以执行DEFAULT语句   只能通过Access OLE DB   提供者和ADO。它将返回一个   如果通过使用错误消息   访问SQL View用户界面。

Sooo ...告诉我们更多关于你在做什么以及你如何执行SQL的事情?

你为什么不使用表设计器?

答案 1 :(得分:1)

答案 2 :(得分:0)

您没有插入新的默认值,您需要更改现有的默认值。

首先切换访问一个理智的SQL风格,如上面链接的答案,然后你可以说:

alter table Tabella alter column Campo Double DEFAULT 0

答案 3 :(得分:0)

我有这个典型的Access函数来向Access表添加新字段+默认值:如果表中尚不存在该字段,则添加该字段。

Public Function addNewField( _
    m_tableName as string, _
    m_fieldName As String, _
    m_fieldType As Long, _      'check syntax of .createField method for values'
    m_fieldLength As Long, _    'check syntax of .createField method for values'
    Optional m_defaultValue As Variant = Null)

Dim myTable As DAO.TableDef
Dim myField As DAO.Field

On Error GoTo addNewField_error

Set myTable = currentDb.TableDefs(m_tableName)
Set myField = myTable.CreateField(m_fieldName, m_fieldType, m_fieldLength)

If Not IsNull(m_defaultValue) Then
    myField.DefaultValue = m_defaultValue
End If

myTable.Fields.Append myField

Set myTable = Nothing
Set myField = Nothing

Exit Function

addNewField_error:
If Err.Number = 3191 Or Err.Number = 3211 Then
    'The field already exists or the table is opened'
    'nothing to do but exit the function'
Else
    debug.print Err.Number & " - " & Error$
End If

End Function