Office中国论坛/Access中国论坛
标题: tabledefs 无效? [打印本页]
作者: wjerryho 时间: 2006-11-3 20:07
标题: tabledefs 无效?
tabledefs 无效dim aa as tabledefsset aa=currentdb.tabledefs("BB")debug.print aa.name则出现"3420"的错误.问题出现在 aa.name 上 "对象无效或不再设置"到底要如何解决?
[此贴子已经被作者于2006-11-3 14:23:32编辑过]
作者: sgrshh29 时间: 2006-11-3 20:16
dim aa as tabledef
作者: wjerryho 时间: 2006-11-3 22:19
改过一样tabledef 无效?
tabledefs 无效
dim aa as tabledef
set aa=currentdb.tabledefs("BB")
debug.print aa.name
则出现"3420"的错误.
问题出现在 aa.name 上 "对象无效或不再设置"
到底要如何解决?
作者: sgrshh29 时间: 2006-11-4 00:23
debug.print aa.name
aa已经定义为tabledef,tabledef也能打印吗?也能 .name吗?你究竟想要得到什么呢?
作者: wwwwa 时间: 2006-11-4 00:26
你的目的?
作者: wjerryho 时间: 2006-11-4 00:44
想用VBA编程,对一个现成的表增加一个字段,但过不了定意tabledefs("contract")这一关.
运行时会出现阶段"3420"的错误!不知道是软件问题还是别的问题?
下列代码选自<<MSDN Library for Visual Studio .NET 2003>>
MSDN Library -->
数据访问-->
DAO-->
技术文章-->
Migrating from DAO to ADO -->
Creating and Modifying Tables (增加和修改表)
中的内容Sub DAOCreateAutoIncrColumn()
Dim db As DAO.Database
Dim tbl As DAO.TableDef
Dim fld As DAO.Field
' Open the database
Set db = DBEngine.OpenDatabase(".\NorthWind.mdb")
' Get the Contacts table
Set tbl = db.TableDefs("Contacts")
' Create the new auto increment column
Set fld = tbl.CreateField("ContactId", dbLong)
fld.Attributes = dbAutoIncrField
' Add the new table to the database.
tbl.Fields.Append fld
db.Close
End Sub
[此贴子已经被作者于2006-11-3 16:45:03编辑过]
作者: wwwwa 时间: 2006-11-4 00:48
对一个现成的表增加一个字段
用ALTER TABLE即可
作者: wjerryho 时间: 2006-11-5 02:59
我只会有简单的VBA编程,对 Microsoft Jet 数据库引擎 不太了解!我记得我以前在VFP用过ALTER TABLE语句,Access上就不用用了!
ALTER TABLE 语句
修改已用 [url=mkMSITStore:C:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\2052\jetsql40.chm::/dasqlcreatetable.htm]CREATE TABLE 语句[/url]创建好的表设计。
注意 对于非微软数据库, Microsoft Jet 数据库引擎 不支持ALTER TABLE, 或 数据定义语言 (DDL) 语句的使用。而使用 DAO创建方法。
语法
ALTER TABLE 表 {ADD ADD{COLUMN 字段类型 [ (字长)] [NOT NULL] [CONSTRAINT 索引 ] |
ALTER COLUMN 字段类型 [(字长)] |
CONSTRAINT 多重字段索引 } |
DROP DROP{COLUMN 字段 I CONSTRAINT 索引名 } }
ALTER TABLE 语句分为以下几个部分:
部分
说明
table
欲修改的表之名称。
field
欲在表内增加或删除的字段的名称。或表内欲被替换的字段名称。
type
字段的数据类型。
size
字段的字符长度 (文本及二进制字段)。
index
字段索引。欲了解更多有关如何构造本索引的信息,请看 [url=mkMSITStore:C:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\2052\jetsql40.chm::/dasqlconstraint.htm]CONSTRAINT子句[/url]。
multifieldindex
欲增加至表 中的多重字段索引的定义。欲了解更多有关如何构造本索引的信息,请看 [url=mkMSITStore:C:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\2052\jetsql40.chm::/dasqlconstraint.htm]CONSTRAINT子句[/url]。
indexname
欲删除的多重字段索引的名称。
说明
使用 ALTER TABLE 语句,可用多种不同方法更改当前已存在的表:你可以:
- 使用 ADD COLUMN 在表中添加新的字段。需要指定字段名、数据类型、还可以 (对文本和二进制字段)指定长度。例如,下列语句在员工表中增加一 25 个字符的、名为 Notes 的文本字段:
ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
也可以定义此字段的索引。关于单一字段索引的详细信息,请参阅CONSTRAINT 子句主题。
如果对一字段指定 NOT NULL,则在这字段中添加的新记录必须有有效的数据。
- 使用ALTER COLUMN改变一个当前字段的数据类型,需要指定字段名、新数据类型、还可以 (对文本和二进制字段)指定长度。例如,下列语句把雇员表中一个字段的数据类型, 被称为ZipCode(最初被定义为整数),改变成一个10字符文本字段:
ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
- 使用 ADD CONSTRAINT 添加多重字段索引。关于多重字段索引的详细信息,请参阅 CONSTRAINT 子句主题。
- 使用 DROP COLUMN 删除字段。只要指定欲删除的字段名即可。
- 使用 DROP CONSTRAINT 删除多重字段索引。只要在 CONSTRAINT 保留字后面指定索引名即可。
作者: wjerryho 时间: 2006-11-5 03:12
以下是引用wwwwa在2006-11-3 16:48:00的发言:
对一个现成的表增加一个字段
用ALTER TABLE即可
最后用一句
currentdb.Execute "ALTER TABLE bb ADD COLUMN bb char(10)"
就完成任务
谢谢!!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |