2012-07-05 30 views
1

我有一个导入规范已经在MS Excel中映射出来。如何从Excel中复制导入规范以访问?

当我尝试复制并粘贴到MS Access中的“高级文本文件导入”向导,但是,它会验证输入,并没有错误只提供一个,当我到达最后一步。

有没有人遇到过这个问题,他们有没有修复它?我可以手动输入规格,但这会非常耗时,因为有200多个字段。

谢谢。

+0

可能是一个更容易创建SCHEMA.INI – Fionnuala 2012-07-05 18:46:16

回答

1

亮点导入常规表和粘贴的右上角(续V) 表必须在相同的格式,所以最好的办法是复制现有的进口规范通过突出显示进口规范(左上规格表的右上角)和CNTL C和粘贴到Excel中,调整到新的规范,在重新粘贴,突出导入常规表和粘贴的右上角(续V)

经过多年的思考,我已经发现了这一点,进口规格方面的访问是一个荒谬的。

+0

我完全忘了寻找解决之后这个问题。实际上,您可以从Excel工作表复制到“布局规格”向导中的“访问数据表”视图。我会向其他开发人员提供的唯一建议是确保您的字段名称是完全独特的。我还必须更改空白以强调要使导入正确验证。 – toolshed 2013-11-21 01:44:26

1

根据Microsoft的说法,您无法将规范从一个数据库复制到另一个数据库。如果禁止访问 - 访问传输导入/导出规范,那么Excel-Access传输也是不可用的。

然而,要求被存储在MS Access在表中,特别MSysImexSpecs和MSysImexColumns表。根据您用于MS Access的版本,您查看这些隐藏表的方式不同。谷歌可以很快引导你。

某些VBA编码可以通过读取源数据库中的MSysImexSpecs内容并将数据插入目标表中的MSysImexSpecs来实现规范的Access-Access传输。

因为Excel不使用表,我真的不相信有一个解决方案不是重建在MS Access规范更快。

下面是导入/导出规格的访问接入迁移的代码示例,我今天发现。如果您知道ImEx规格如何存储在Excel中(可能位于集合中?),则可能会更改以下代码,以便从Excel集合迁移到Access表。

Sub GetSpecs() 
Dim accApp As Object 
Dim SourceDBName As String 
Dim DbPath As String 
Dim CurrDB As String 

SourceDBName = "C:\SourceDB.mdb" 
DbPath = "C:\TargetDBPath\" 'Make sure about last slash 

Set accApp = CreateObject("Access.Application") 
CurrDB = Dir(DbPath & "*.mdb", vbNormal) 
Do Until Len(CurrDB) = 0 
    If Not DbPath & CurrDB = SourceDBName Then 
     accApp.OpenCurrentDatabase DbPath & CurrDB 
     On Error GoTo errhandler 
     accApp.CurrentDb.TableDefs.Delete "MSysIMEXSpecs" 
     accApp.DoCmd.TransferDatabase acImport, "Microsoft Access", SourceDBName, acTable, "MSysIMEXSpecs", "MSysIMEXSpecs" 
     accApp.CloseCurrentDatabase 
     CurrDB = Dir() 
    End If 
Loop 
accApp.Quit 
MsgBox "Done", vbOKOnly + vbInformation, "Error" 
Exit Sub 

errhandler: 
If Err = 3265 Then 
    Resume Next 
Else 
    MsgBox Err & " - " & Err.Description, vbOKOnly + vbExclamation, "Error" 
    If Not accApp Is Nothing Then accApp.Quit 
End If 
End Sub 

来源:http://www.mrexcel.com/forum/showthread.php?58094-Import-Specifications