用sql設(shè)置access的默認(rèn)值
更新時(shí)間:2006年09月09日 00:00:00 作者:
簡述:
如何定義字段默認(rèn)值
問題:
如何設(shè)定表的某字段默認(rèn)值?
方法一:
用 JET SQL 來完成
ALTER TABLE TABLENAME ALTER COLUMN FIELDNAME TEXT(40) DEFAULT 默認(rèn)值
請注意,上述語句要用 ADODB.CONNECTION.EXECUTE 等方法來執(zhí)行,直接用上述代碼建立一個(gè)查詢無法保存或者運(yùn)行,會得到 ACCESS 的錯(cuò)誤提示。
方法二:
ADOX 可以。
Function ChengTableFieldPro_ADO()
Dim MyTableName As String
Dim MyFieldName As String
Dim GetFieldDesc_ADO
Dim GetFieldDescription
MyTableName = "ke_hu"
MyFieldName = "dw_name"
Dim MyDB As New ADOX.Catalog
Dim MyTable As ADOX.Table
Dim MyField As ADOX.Column
On Error GoTo Err_GetFieldDescription
MyDB.ActiveConnection = CurrentProject.Connection
Set MyTable = MyDB.Tables(MyTableName)
GetFieldDesc_ADO = MyTable.Columns(MyFieldName).Properties("Description")
Dim pro As ADODB.Property
For Each pro In MyTable.Columns(MyFieldName).Properties
Debug.Print pro.Name & " : " & pro.Value & " ---- type : " & pro.Type
Next
With MyTable.Columns(MyFieldName)
'.Properties("nullable") = True '必填
'必填無法用上述代碼設(shè)置,出錯(cuò)提示為:
'多步 OLE DB 操作產(chǎn)生錯(cuò)誤。如果可能,請檢查每個(gè) OLE DB 狀態(tài)值。沒有工作被完成。
'目前可以用以下語句設(shè)置:
'CurrentDb.TableDefs("ke_hu").Fields("DW_NAME").Properties("Required") = False
.Properties("Jet OLEDB:Allow Zero Length") = True '允許空
.Properties("default") = "默默默默認(rèn)認(rèn)認(rèn)認(rèn)" '默認(rèn)值
End With
Set MyDB = Nothing
Bye_GetFieldDescription:
Exit Function
Err_GetFieldDescription:
Beep
Debug.Print Err.Description
MsgBox Err.Description, vbExclamation
GetFieldDescription = Null
Resume Bye_GetFieldDescription
End Function
關(guān)于“多步錯(cuò)誤”的一些參考:
Sub ChangeUnicode()
Dim tdf As TableDef
Dim fld As Field
Dim db As Database
Dim pro As Property
Set db = CurrentDb
For Each tdf In db.TableDefs
For Each fld In tdf.Fields
If fld.Type = dbText Then
If DBEngine.Errors(0).Number = 3270 Then
Set pro = fld.CreateProperty("UnicodeCompression", 1, 0)
fld.Properties.Append p
End If
fld.Properties("UnicodeCompression") = True
End If
Next fld
Next tdf
End Sub
如何定義字段默認(rèn)值
問題:
如何設(shè)定表的某字段默認(rèn)值?
方法一:
用 JET SQL 來完成
ALTER TABLE TABLENAME ALTER COLUMN FIELDNAME TEXT(40) DEFAULT 默認(rèn)值
請注意,上述語句要用 ADODB.CONNECTION.EXECUTE 等方法來執(zhí)行,直接用上述代碼建立一個(gè)查詢無法保存或者運(yùn)行,會得到 ACCESS 的錯(cuò)誤提示。
方法二:
ADOX 可以。
Function ChengTableFieldPro_ADO()
Dim MyTableName As String
Dim MyFieldName As String
Dim GetFieldDesc_ADO
Dim GetFieldDescription
MyTableName = "ke_hu"
MyFieldName = "dw_name"
Dim MyDB As New ADOX.Catalog
Dim MyTable As ADOX.Table
Dim MyField As ADOX.Column
On Error GoTo Err_GetFieldDescription
MyDB.ActiveConnection = CurrentProject.Connection
Set MyTable = MyDB.Tables(MyTableName)
GetFieldDesc_ADO = MyTable.Columns(MyFieldName).Properties("Description")
Dim pro As ADODB.Property
For Each pro In MyTable.Columns(MyFieldName).Properties
Debug.Print pro.Name & " : " & pro.Value & " ---- type : " & pro.Type
Next
With MyTable.Columns(MyFieldName)
'.Properties("nullable") = True '必填
'必填無法用上述代碼設(shè)置,出錯(cuò)提示為:
'多步 OLE DB 操作產(chǎn)生錯(cuò)誤。如果可能,請檢查每個(gè) OLE DB 狀態(tài)值。沒有工作被完成。
'目前可以用以下語句設(shè)置:
'CurrentDb.TableDefs("ke_hu").Fields("DW_NAME").Properties("Required") = False
.Properties("Jet OLEDB:Allow Zero Length") = True '允許空
.Properties("default") = "默默默默認(rèn)認(rèn)認(rèn)認(rèn)" '默認(rèn)值
End With
Set MyDB = Nothing
Bye_GetFieldDescription:
Exit Function
Err_GetFieldDescription:
Beep
Debug.Print Err.Description
MsgBox Err.Description, vbExclamation
GetFieldDescription = Null
Resume Bye_GetFieldDescription
End Function
關(guān)于“多步錯(cuò)誤”的一些參考:
Sub ChangeUnicode()
Dim tdf As TableDef
Dim fld As Field
Dim db As Database
Dim pro As Property
Set db = CurrentDb
For Each tdf In db.TableDefs
For Each fld In tdf.Fields
If fld.Type = dbText Then
If DBEngine.Errors(0).Number = 3270 Then
Set pro = fld.CreateProperty("UnicodeCompression", 1, 0)
fld.Properties.Append p
End If
fld.Properties("UnicodeCompression") = True
End If
Next fld
Next tdf
End Sub
相關(guān)文章
asp Driver和Provider兩種連接字符串連接Access時(shí)的區(qū)別
Microsoft OLE DB Provider for ODBC Drivers 錯(cuò)誤 '80040e21' 多步 OLE DB 操作產(chǎn)生錯(cuò)誤。如果可能,請檢查每個(gè) OLE DB 狀態(tài)值。沒有工作被完成。2009-12-12asp Access數(shù)據(jù)備份,還原,壓縮類代碼
asp Access數(shù)據(jù)備份,還原,壓縮類實(shí)現(xiàn)代碼,大家可以參考下。2009-11-11用Asp備份與恢復(fù)SQL Server 數(shù)據(jù)庫
用Asp備份與恢復(fù)SQL Server 數(shù)據(jù)庫...2006-08-08使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000)應(yīng)用介紹
SQL Server 桌面引擎(也叫 MSDE 2000)沒有自己的用戶界面,因?yàn)樗饕O(shè)計(jì)為在后臺運(yùn)行2012-11-11set rs=server.CreateObject("adodb.recordset") 的中文詳
這是創(chuàng)建一個(gè)數(shù)據(jù)庫實(shí)例,但是什么是數(shù)據(jù)庫實(shí)例?還有rs這個(gè)東西也不是一個(gè)變量,他在程序里邊rs.update 等操作是如何進(jìn)行的?打開的表示如何接收rs傳過來的數(shù)據(jù)的?2010-08-08asp 在線備份與恢復(fù)sqlserver數(shù)據(jù)庫的代碼
asp 在線備份 恢復(fù) sql server 數(shù)據(jù)庫,對于遠(yuǎn)程沒有提供sqlserver遠(yuǎn)程連接或打包下載的朋友是個(gè)臨時(shí)解決方法,對于大數(shù)據(jù)來說可能效果不好。2010-07-07如何在不支持?jǐn)?shù)據(jù)庫的asp主頁上運(yùn)用ado
如何在不支持?jǐn)?shù)據(jù)庫的asp主頁上運(yùn)用ado...2006-09-09