我有一个Access 2007数据库,当我打开它时,我可以在Access应用程序中复制并粘贴一个表。我可以选择仅复制结构OR结构和数据。在我的情况下,我只需要结构。副本保留原始索引和键。我需要用VB.NET来做这件事。到目前为止,我已经查看了很多文章,并且能够通过发布SQL语句来复制表结构
Dim dbCmdInsert As New OleDbCommand
With dbCmdInsert
.CommandText = "SELECT * INTO tmpTable FROM Trips WHERE 0=1;"
.CommandType = CommandType.Text
.Connection = connNavDb
Dim n As Integer = .ExecuteNonQuery
End With
这复制了没有记录的结构,这是我想要的,但索引和键丢失了。我似乎无法找到完成这一目标的良好指导。
答案 0 :(得分:1)
确实非常粗略:
Dim oAccess As New Access.Application
''Open a database
oAccess.OpenCurrentDatabase("z:\docs\test.accdb")
''"Import" table
oAccess.DoCmd.TransferDatabase(
Access.AcDataTransferType.acExport, "Microsoft Access", "z:\docs\test.accdb", _
Access.AcObjectType.acTable, "table1", "newtable1", True, False)
另见c#:Copy Access table structure and constraints using C# or SQL
答案 1 :(得分:0)
在Access VBA中,您可以使用DoCmd.TransferDatabase acExport
,使用源数据库作为目标,提供(当然)不同的目标表名称。
我不知道vb.net中是否存在与DoCmd
相同的内容,但这可能是最简单的路径。
答案 2 :(得分:0)
DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentDb().Name, acTable, "Table1", "TableToCreate", True