2015-09-04 5 views
0

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

В качестве основного примера, если у меня есть таблица в Access, такие как

+---------+---------+-----+ 
| Number1 | Number2 | Sum | 
+---------+---------+-----+ 
| 1 | 1 |  | 
| 1 | 2 |  | 
| 2 | 2 |  | 
+---------+---------+-----+ 

, где я хотел бы вычислить сумму каждой строки Number1 и Number2 в Excel затем поместить результат обратно в Access стол, как бы я это сделал? Я довольно новичок в Access и довольно неудачно нашел пример этого сценария.

+1

Если вы только пытаетесь использовать СУММ (или делать другие операторы, например, умножать или делить существующие данные), почему бы не использовать встроенные возможности SQL внутри MS Access для создания вычисленного поля, которое делает математику для вас и заполняет новое поле? – iamstrained

+0

Мне нужно сделать несколько более сложных вычислений в Excel, которые я действительно не смогу сделать в Access легко. Моя основная проблема прямо сейчас - это просто автоматизировать Excel в Access, не делая самих вычислений, поэтому я просто использовал простой пример SUM. – Aron

+0

Можете ли вы открыть таблицу доступа в виде набора записей в Excel и выполнить расчеты по этим значениям набора записей? Или вам нужны данные Access, импортированные в рабочий лист? – HansUp

ответ

0

Если вы определяете именованный диапазон в Excel, который включает в себя вычисленные результаты и поле «Ключ», вы можете ссылаться на «Доступ к этому диапазону Excel».

С помощью связанной таблицы исходные данные в Access можно изменить с помощью запроса на обновление.

Чтобы связать диапазон Excel Я использовал этот код:

Sub MountExcel(MyPathToExcelFile, MyTblName, ExcelRange) 
Dim ExternalExcel As TableDef 

    Set ExternalExcel = CurrentDb.CreateTableDef(MyTblName) 
    With ExternalExcel 
     .Connect = "Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=" & MyPathToExcelFile 
     .SourceTableName = ExcelRange 
    End With 
    CurrentDb.TableDefs.Append ExternalExcel 
    CurrentDb.TableDefs.Refresh 
End Sub 

Несколько раз F5 должны быть прижаты перед новой связанной таблицы отображается в списке объектов доступа.