如何新建一个长整型的字段和日期型的字段?
我用 adox里的table columns.append "UserID" adVarNumeric
运行时提示报错,哪位大侠能告诉我append里的参数(如adVarNumberic, adVarwChar等)都代表了什么?多谢了,给100分PS:我没有MSDN

解决方案 »

  1.   

    Append 方法
          将对象追加到集合中。如果集合是 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 属性,当使用 Open 方法打开 Recordset 时,CursorLocation 将被自动设置为 adUseClient。对打开的 Recordset 或已设置 ActiveConnection 属性的 Recordset,调用其 fields.Append 方法将引发运行时错误。只能将字段追加到没有打开并且尚未连接到数据源的 Recordset。一般地,通过 CreateRecordset 方法或通过将新 Recordset 对象显式赋给对象变量所创建的都是新 Recordset 对象。
      

  2.   

    Append 和 CreateParameter 方法范例
    该范例使用 Append 和 CreateParameter 方法执行具有输入参数的存储过程。Public Sub AppendX()   Dim cnn1 As ADODB.Connection
       Dim cmdByRoyalty As ADODB.Command
       Dim prmByRoyalty As ADODB.Parameter
       Dim rstByRoyalty As ADODB.Recordset
       Dim rstAuthors As ADODB.Recordset
       Dim intRoyalty As Integer
       Dim strAuthorID As String
       Dim strCnn As String   ' 打开连接。
       Set cnn1 = New ADODB.Connection
       strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       cnn1.Open strCnn
       cnn1.CursorLocation = adUseClient
          
       ' 使用一个参数打开命令对象。
       Set cmdByRoyalty = New ADODB.Command
       cmdByRoyalty.CommandText = "byroyalty"
       cmdByRoyalty.CommandType = adCmdStoredProc
       
       ' 获取参数值并追加参数。
       intRoyalty = Trim(InputBox("Enter royalty:"))
       Set prmByRoyalty = cmdByRoyalty.CreateParameter("percentage", _
          adInteger, adParamInput)
       cmdByRoyalty.Parameters.Append prmByRoyalty
       prmByRoyalty.Value = intRoyalty   ' 通过执行命令创建记录集。
       Set cmdByRoyalty.ActiveConnection = cnn1
       Set rstByRoyalty = cmdByRoyalty.Execute
       
       ' 打开 Authors 表以获取作者姓名进行显示。
       Set rstAuthors = New ADODB.Recordset
       rstAuthors.Open "authors", cnn1, , , adCmdTable
       
       ' 打印记录集中的当前数据,从 Authors 表中添加作者姓名。
       Debug.Print "Authors with " & intRoyalty & " percent royalty"
       Do While Not rstByRoyalty.EOF
          strAuthorID = rstByRoyalty!au_id
          Debug.Print "   " & rstByRoyalty!au_id & ", ";
          rstAuthors.Filter = "au_id = '" & strAuthorID & "'"
          Debug.Print rstAuthors!au_fname & " " & rstAuthors!au_lname
          rstByRoyalty.MoveNext
       Loop   rstByRoyalty.Close
       rstAuthors.Close
       cnn1.CloseEnd Sub
      

  3.   

    哦,我再解释一下我的题目,我是说我用adox新建一个空的access数据库文件,然后通过adox.table添加表和字段,我是问在用adox.Table.Columns.Append 添加新的字段时候,append有参数Item,[Type as DataTypeEnum=adVarwChar],[Definedsize as long],我是问这里的Type参数的具体值是什么意思?谢谢了
      

  4.   


    常量 说明 
    adTinyInt 精确的数字值,精度为小数点后 3 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdSmallInt 精确数字值,精度为小数点后 5 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdInteger 精确数字值,精度为小数点后 10 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdBigInt 精确数字值,精度为小数点后 19 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdUnsignedTinyInt 无符号的 adTinyInt。 
    AdUnsignedSmallInt 无符号的 adSmallInt。 
    AdUnsignedInt 无符号的 adInteger。 
    AdUnsignedBigInt 无符号的 adBigInt。 
    AdSingle 单精度浮点数。 
    AdDouble 双精度浮点数。 
    AdCurrency 货币类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdDecimal 变体型十进制类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdNumeric 数值类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdBoolean 变体布尔类型。0 为假而 ~0 为真。 
    AdUserDefined 用户定义的变量长度数据类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdVariant 自动变体型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdGuid 全域唯一标识符。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdDate 自动日期。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdDBDate 数据库日期数据结构。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdDBTime 数据库时间数据结构。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdDBTimestamp 数据库时间戳结构。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdBSTR BSTR 的指针。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 
    AdChar 定长字符串。 
    AdVarChar 变长字符串。 
    AdLongVarChar 长变长字符串。 
    AdWChar 宽定长字符串。 
    AdVarWChar 宽变长字符串。 
    AdLongVarWChar 长、宽变长字符串。 
    AdBinary 定长二进制数据。 
    AdVarBinary 变长二进制数据。 
    AdLongVarBinary 长变长二进制数据。 
      

  5.   

    老大,我想要的都是请参阅“OLE DB 程序员参考”,可是我没有ole db程序员参考啊,你还是直接告诉我长整型怎么定义吧
      

  6.   

    弱弱地问,什么叫adox?和ado有什么区别?
      

  7.   

    以后不要用ADOX了,多难用呀,ADO不是很好么?
      

  8.   

    给个帖子自己看吧
    http://community.csdn.net/Expert/topic/3211/3211902.xml?temp=.446789