2013-03-08 52 views
0

我試圖找到最好的方式來提取報告從Access到Excel和更新訪問,一旦數據已由問卷參與者yieled。從Excel中產生的數據更新訪問

Access中的數據相當複雜和龐大(包含在一個主表中 - 50列+ & 200K行) - 這不會讓人眼前一亮。

我想從Access中提取報告(本質上是數據的一個子集 - N列中的M列)。該報告將由個人更新(即更新的值),並需要反饋到Access。

我正在尋找最符合用戶需求的方法來實現上述目標。有沒有人有任何想法?

Ps明顯的答案歡迎,我是一個完整的Access/Excel noob - 但在MySQL,SQL Server有一個背景。

+0

問題仍然過於寬泛 - 請更精確的有關輸入和'的數據庫不是normalized'建議。 – 2013-03-08 12:40:23

+0

編輯 - 基本上有一張巨大的桌子! – user559142 2013-03-08 14:22:38

回答

0

據我所知,沒有一個工具可以做到這一點,如果你想創建自己的,我建議你使用任何.NET語言,ADO.NET和Interop來讀取數據Excel中。如果你不覺得你想要做一些.NET編程,那麼有一個名爲DBxtra的報告工具,它將Excel,Access和許多數據庫作爲輸入,並且可以將數據導出到Excel(靜態或動態)和其他格式。這條路線將是這樣的:

1.-從您的Access數據庫中DBxtra創建查詢

2:將結果導出到Excel(鏈接或靜電板材)

3.-設用戶更新Excel中的數據

4.-使用Excel宏更新Access數據庫中的數據。

要更新,你將需要把這樣一個宏到您的Excel文件的訪問數據庫:

Sub appProb() 

    On Error GoTo 1 

    Dim XLTable As TableDef 

    Set Db = OpenDatabase(mdbFile) 
    Set XLTable = Db.CreateTableDef("tblProbTemp") 

    XLTable.Connect = "Excel 5.0;DATABASE=" & xlsFile 
    XLTable.SourceTableName = "tblXLProb" 
    Db.TableDefs.Append XLTable 

    strSQL = "Insert into tblProb Select * FROM tblProbTemp" 
    Db.Execute strSQL 

1: 
    Err.Clear 
    On Error Resume Next 
    Db.TableDefs.Delete "tblProbTemp" 
    Db.Close 

End Sub 

值得大家注意的唯一的事情就是tblXLProb名爲範圍。

注:此宏是從這裏複製:http://www.mrexcel.com/forum/microsoft-access/51157-update-access-records-excel.html