2013-03-08 3 views
0

Я пытаюсь найти лучший способ извлечь отчет из Access в Excel и обновить Access, как только данные будут обработаны участниками анкеты.Обновление доступа к данным, полученным в Excel

Данные в Access довольно сложны и велики (содержатся в одной мастер-таблице - 50+ столбцов & 200K + строк) - что не делает его легким на глазах.

Я хотел бы извлечь отчеты из Access (по существу, подмножество данных - M столбцов из N). Отчет будет обновляться отдельными лицами (т. Е. Значения обновляются), и их необходимо будет вернуть в Access.

Я ищу наиболее удобный для пользователя подход для достижения вышеуказанного. У кого-нибудь есть идеи?

Ps очевидные ответы приветствуются, я полный Access/Excel noob, но имею опыт работы в MySQL, SQL Server.

+0

Вопрос все еще слишком широк - пожалуйста, точнее о входе и 'базы данных не normalized' предложение. –

+0

Отредактировано - в основном есть один огромный стол! – user559142

ответ

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

Смежные вопросы