2017-08-28 158 views
0

我们有一个可靠运行的Access数据库和UI。 accdb文件存储在我的SQL Server可见的网络驱动器上。我想将这些数据链接到我的SQL Server。在Access数据库中发生的CRUD(通过Access UI),我想显示在SQL数据库中。在这种情况下,Access DB是主服务器,而SQL Server是从服务器。这可能吗?将数据从Access连接到SQL Server

感谢

+1

您最好将您的表迁移到实际的SQL Server表中,然后使用Access数据库中的链接表管理器将其拉入。另一种方式稍微偏离。 – JNevill

+0

它需要多快显示在SQL Server中? –

回答

1

你可以通过ODBC 链接的SQL Server表到你的Access应用程序。

然后,在此创建查询和/或代码,将Access表中的数据附加/更新到SQL Server表。

0

我认为这通常是通过其他方式完成;访问FE和SQL Server BE,但是,您可以按照您所描述的方式进行操作。

你应该先解决一些基本问题。

https://www.mssqltips.com/sqlservertip/2484/import-data-from-microsoft-access-to-sql-server/

https://support.office.com/en-ie/article/Import-or-link-to-data-in-an-SQL-Server-database-a5a3b4eb-57b9-45a0-b732-77bc6089b84e

现在,推,或拉,数据,创建一个存储过程,无论你从Access需要吸吮。

CREATE PROCEDURE dbo.uspCopyTable 
AS 

INSERT INTO 
dbo.mytable (myfield) 

SELECT 
myfield 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'c:\mypath\mydb.mdb';'admin';'mypwd', mytable) 
GO 

fire it off by something like this 

dim cn as adodb.connection 
set cn = new adodb.connection 
cn.open "Provider=sqloledb;" & _ 
"Data Source=myServerName;" & _ 
"Initial Catalog=myDatabaseName;" & _ 
"Integrated Security=SSPI" 
cn.execute "dbo.uspCopyTable" 

或者,使用VBA将Access中的数据推送到Excel中。

Make new table: 
Dim strsql As string 
strSql = "SELECT * Into YourNewAccessTableName FROM ExistingSqlTableName" 
Currentdb.execute(strSql) 
Insert into existing Access table (assume fieldnames are the same: 

Dim strsql As string 
strSql = "INSERT Into YourAccessTableName SELECT * FROM ExistingSqlTableName" 
Currentdb.execute(strSql)