Sql server 将链接到SQL Server上的表的访问表,在访问数据更改时更新
我有一个Access数据库,可以链接多个Excel文件,还可以连接到Google Analytics 我创建了一个Unison查询,将所有文件和表合并到一个表中 我需要此表能够被多个其他用户访问和刷新,通常是通过excel powerpivot表。我设置了一个Azure SQL server,并执行了导出向导来移动数据,这很有效,但我无法使用新数据更新数据(我需要每天进行更新)。简单地共享access db是行不通的,因为不是每个人都有相同的文件结构Sql server 将链接到SQL Server上的表的访问表,在访问数据更改时更新,sql-server,excel,ms-access,azure-sql-database,Sql Server,Excel,Ms Access,Azure Sql Database,我有一个Access数据库,可以链接多个Excel文件,还可以连接到Google Analytics 我创建了一个Unison查询,将所有文件和表合并到一个表中 我需要此表能够被多个其他用户访问和刷新,通常是通过excel powerpivot表。我设置了一个Azure SQL server,并执行了导出向导来移动数据,这很有效,但我无法使用新数据更新数据(我需要每天进行更新)。简单地共享access db是行不通的,因为不是每个人都有相同的文件结构 如何获取Access中的表以链接到SQL,这
如何获取Access中的表以链接到SQL,这样当它在Access中更新时,SQL中的表会更新?手动将表导出到Azure SQL Server后,只需将该表链接到MS Access应用程序中,然后通过代码手动或自动运行操作查询以进行日常更新
- Azure SQL Server ODBC驱动程序或以前创建的
- 确保连接的用户具有读/写表权限(在服务器上分配)
- 初始设置的漫游向导(请参见“外部数据”下的ODBC数据库选项)
INSERT
和SELECT
子句中的列数应相等,并且每个对应类型应匹配(省略自动编号)
或者,如果需要在两个表源之间运行要求匹配列的UPDATE
查询
UPDATE mySQLServerTable s
INNER JOIN myExceltable e ON e.MatchColumn = s.MatchColumn
SET s.Col1 = e.Col1, s.Col2 = e.Col2, s.Col3 = e.Col3, ...
VBA(在MS Access中自动运行存储查询)
”警告用户要插入/更新的行的NUMEBR
DoCmd.OpenQuery“myActionQuery”
'不警告用户
执行“myActionQuery”,DbFailOneError
相反,您可以运行SQL Server查询,使用从外部MS Access源插入到表中。这假设数据库可以从SQL Server所在的位置访问
INSERT INTO INSERT INTO mySQLServerTable (Col1, Col2, Col3, ...)
SELECT e.Col1, e.Col2, e.Col3, ...
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'C:\path\to\myDatabase.accdb', 'admin', '', myExcelTable) AS e
我会走另一条路。在Access中创建链接表,并将所有数据保留在一个位置。那么您的数据总是最新的。但是由于公式从数据中提取信息,我需要能够更新excel中的数据?请设置链接excel和SQL Server的MS Access应用程序。然后,运行“附加查询”将Excel链接表迁移到SQL Server链接表。@Parfait您有关于此链接的详细信息吗?这听起来是一个很好的解决方案,谢谢!
INSERT INTO INSERT INTO mySQLServerTable (Col1, Col2, Col3, ...)
SELECT e.Col1, e.Col2, e.Col3, ...
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'C:\path\to\myDatabase.accdb', 'admin', '', myExcelTable) AS e