到目前为止,这是我遗漏的一些多余代码以及一些匿名数据库和变量名:
Dim dB as DAO.Database
Dim tdf as DAO.TableDef
Dim newField As DAO.Field
Dim newFieldNameVar As String
newFieldNameVar = "Variable Name"
Set dB = CurrentDb
Set tdf = dB.TableDefs("PreExistingTable")
Set newField = tdf.CreateField(newFieldNameVar)
tdf.Fields.Append newField
Set newField = Nothing
Set tdf = Nothing
Set dB = Nothing
我的函数中存在上述代码的地方不是在循环中,而是newFieldNameVar是循环的产物,因此会根据与问题线程无关的条件定期进行更改。
在执行.Fields.Append行时,我得到以下运行时错误:无效的字段数据类型。 '3259'我对以任何形式或方式进行编程都是相当陌生的,但是想像一下,对于用作.CreateField方法的Name元素的变量,我可能使用了错误的语法。有任何想法吗?我可以在.CreateField方法中使用字符串变量作为Name吗?
谢谢您的帮助!
答案 0 :(得分:0)
虽然Type
是.CreateField
方法的可选参数,但每个字段确实都需要一个类型,然后才能将其附加到表中,否则Access会抛出此错误
指定字段大小也是一种好习惯。
指定您的字段类型,例如:
Dim dB as DAO.Database
Dim tdf as DAO.TableDef
Dim newField As DAO.Field
Dim newFieldNameVar As String
newFieldNameVar = "Variable Name"
Set dB = CurrentDb
Set tdf = dB.TableDefs("PreExistingTable")
Set newField = tdf.CreateField(newFieldNameVar, dbText, 255) '255 character long text field
tdf.Fields.Append newField
Set newField = Nothing
Set tdf = Nothing
Set dB = Nothing