gpt4 book ai didi

ms-access - 通过 ADOX 添加带有自动编号主键的 Access 表

转载 作者:行者123 更新时间:2023-12-05 00:27:33 25 4
gpt4 key购买 nike

我正在尝试添加一个带有主键的新表,并希望将其“AutoIncrement”属性设置为 True。这是我在做什么:

Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim col As New ADOX.Column
Dim cnn As Object
Dim dbs As Database
Dim DataSource As String

DataSource = "\\spdb\depts\Msg_be.accdb"

Set cnn = CreateObject("ADODB.Connection")

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=" & DataSource & ";Jet OLEDB:Database Password=psWrD; "

Set dbs = OpenDatabase(DataSource, False, False, "MS Access;PWD=psWrD")
cat.ActiveConnection = cnn

tbl.Name = "tblMsg"

tbl.Columns.Append "MsgID", adInteger
tbl.Keys.Append "PrimaryKey", adKeyPrimary, "MsgID"
tbl.Columns.Item("MsgID").Properties("AutoIncrement") = True
cat.Tables.Append tbl

但是,我收到此错误:
Run-time error '3265':
Item cannot be found in the collection corresponding to the requested name or ordinal.

在线:
tbl.Columns.Item("MsgID").Properties("AutoIncrement") = True

我在这里错过了什么吗?

最佳答案

您可能会想出如何修改您的 ADOX 方法以获得您想要的。但是,由于您可以打开到目标数据库的工作 ADO 连接,我认为仅使用该连接来执行 ALTER TABLE 应该更简单。将自动编号 MsgID 字段添加到表中的语句。

我在 Access 2007 中测试了这种方法,它成功地将自动编号字段添加到我的 tblMsg 表中。 (但是我必须更改 ADO 连接属性才能连接到我的 db 文件。)

Dim cnn As Object
Dim DataSource As String
Dim strSql As String

DataSource = "\\spdb\depts\Msg_be.accdb"
Set cnn = CreateObject("ADODB.Connection")

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=" & DataSource & ";Jet OLEDB:Database Password=psWrD; "
strSql = "ALTER TABLE tblMsg ADD COLUMN MsgID COUNTER PRIMARY KEY;"
Debug.Print strSql
cnn.Execute strSql

关于ms-access - 通过 ADOX 添加带有自动编号主键的 Access 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com