2012-07-05 53 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