复制带索引和键的访问表

时间:2012-07-01 06:02:35

标签: vb.net ms-access indexing copy

我有一个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

这复制了没有记录的结构,这是我想要的,但索引和键丢失了。我似乎无法找到完成这一目标的良好指导。

3 个答案:

答案 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