Access911.net   |   a9BBS   |   OTaA System  
  搜索文章︰  
Access911歡迎您光臨  
   主頁      上傳      简体版       論壇     
設為首頁  |  加入收藏   
2020年7月12日 星期日  
你現在的位置︰文章索引 -> 文章分類 -> 表  
 首頁|  近日更新|  下載  |  文章索引  |  搜索|  朮語|  承接工程|  
 
系統正在加載內容,請耐心等待...
 
 查詢
 窗体
 報表
 
 
 VBA
 函數
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 發布
 OA
 ASP/ASP.NET
 其他語言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用軟件
 參考文檔
 業主作品
 网友大作
 
 
友情鏈接
 access911.net
 
訪問人次
 1801950
 
站長 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 訂閱

顯示附加信息 >>>

如何設定表的某字段默認值?

作者︰cg1  摘自︰access911.net  ︰cg1  更新日期︰2003-5-2  瀏覽人次︰19551

 

問題︰


如何設定表的某字段默認值?

 

方法一︰


用 JET SQL 來完成
ALTER TABLE TABLENAME ALTER COLUMN FIELDNAME TEXT(40) DEFAULT 默認值


請注意,上述語句要用 ADODB.CONNECTION.EXECUTE 等方法來執行,直接用上述代碼建立一個查詢無法保存或者運行,會得到 ACCESS 的錯誤提示。

 

方法二︰


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    '必填
        '必填無法用上述代碼設置,出錯提示為︰
        '多步 OLE DB 操作產生錯誤。如果可能,請檢查每個 OLE DB 狀態值。沒有工作被完成。
        '目前可以用以下語句設置︰
        'CurrentDb.TableDefs("ke_hu").Fields("DW_NAME").Properties("Required") = False
        .Properties("Jet OLEDB:Allow Zero Length") = True   '允許空
        .Properties("default") = "默默默默認認認認"      '默認值
    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


 

關于“多步錯誤”的一些參考︰︰


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



更多關于ADO和DAO的信息,您可參見以下文檔:

Porting DAO Code to ADO with the Microsoft Jet Provider:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndao/html/daotoado.asp

 

本站文章旨在為該問題提供解決思路及關鍵性代碼,并不能完成應該由网友自己完成的所有工作,請网友在仔細看文章并理解思路的基礎上舉一反三、靈活運用。

access911.net 原創文章,作者本人對文章保留一切權利。
如需轉載必須征得作者同意并注明本站鏈接


 

 
相關文章
     沒有手動相關文章
     字段默認值設定為NOW為什么查不到明明存在的2005-11-30的值?
     如何填寫“默認值”屬性?默認值屬性能否使用表達式?
 
評論
     我的代碼如下︰SubCreateLocalDatabase(DbnameAsStrin...( 2005年4月28日 )
     [CGCODE]PublicSubCreateDatabase(dbNameAsString...( 2004年1月26日 )
     查看或發表更多的評論,請單擊這里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期︰2000年4月2日  |  設計施工︰陳格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陳格 保留所有權利