呵呵!DAO的我不知道!不过我知道ADO的。不好意思!你为什么不用先进的?

解决方案 »

  1.   

    Append 方法 (ADO)
             将对象追加到集合中。如果集合是 Fields,将其追加到集合之前可以创建新的 Field 对象。语法collection.Append objectfields.Append Name, Type, DefinedSize, Attrib参数collection   集合对象。fields   Fields 集合。object   对象变量,代表所要追加对象。Name   字符串,新 Field 对象的名称,不得与 fields 中的任何其他对象同名。 Type   DataTypeEnum 类型,其默认值为 adEmpty。新字段的数据类型。 DefinedSize   可选,长整型,指示新字段的定义大小(以字符或字节为单位)。该参数的默认值源于 Type (默认的 Type 为 adEmpty,默认的 DefinedSize 未指定)。Attrib   可选,FieldAttributeEnum,其默认值是 adFldDefault。指定新字段的属性。如果该值未指定,字段将包含源于 Type 的属性。参数在集合上使用 Append 方法可将对象添加到该集合,此方法仅在 Command 对象的 Parameters 集合上有效。在将 Parameter 对象追加到 Parameters 集合中之前必须设置其 Type 属性。如果选定了变长数据类型,则必须将 Size 属性设置为大于零的值。通过对参数作出说明,可以最大程度地减少对提供者的调用,进而在使用存储过程或参数化查询时提高性能,但必须了解与所要调用的存储过程或参数化查询相关联的参数属性。使用 CreateParameter 方法可创建具有适当属性设置的 Parameter 对象,而使用 Append 方法则可将它们添加到 Parameters 集合。这样可以不必调用参数信息的提供者而设置和返回参数值。如果写到不提供参数信息的提供者,则必须使用该方法手工填写 Parameters 集合以便能够完全使用参数。字段在调用 fields.Append 方法前须将 CursorLocation 属性设置为 adUseClient。对打开的 Recordset 或已设置 ActiveConnection 属性的 Recordset ,调用其 fields.Append 方法将引发运行时错误。
      

  2.   

    呵呵,dao是我的老本行了,不过也好久没用了,建议也升级到ADO吧。
    查了半天才将你的问题解决,方法如下:
    在m_TableDef.Fields.Append m_Field之前加一句
    m_Field.Required=True;
    就可以强制不允许为空;当然
    如果写成
    m_Field.Required=False
    则是允许为空了。