【问题标题】:Access VBA to update Access table from SQL Server table sourceAccess VBA 从 SQL Server 表源更新 Access 表
【发布时间】:2013-06-17 22:32:02
【问题描述】:

我创建了下面的代码来测试我是否可以运行查询并从 SQL Server 表中检索数据。到目前为止,我可以使用MessageBox 返回结果,但不知何故,我只是不知道如何使用此连接来更新此 Access 文件中的表。基本上我想用这个作为前端文件。然后,当表单打开时,它会自动更新此访问文件中的表,并将数据作为列表加载到组合框中。我尝试在此处搜索并阅读此处和 Google 中的许多讨论,但目前我找不到正确的解决方案。

Option Compare Database

Sub LocalServerConn_Test()


Set conn = New adodb.Connection
Set rst = New adodb.Recordset


strDBName = "DataSet"

strConnectString = "Provider = SQLOLEDB.1; Integrated Security = SSPI; " & _
    "Initial Catalog = " & strDBName & "; Persist Security Info = True; " & _
        "Worksation ID = abc123;"

            conn.ConnectionString = strConnectString

                conn.Open


strSQL = "SELECT DISTINCT dbo.abc.abc123 FROM dbo.abc"


rst.Open Source:=strSQL, ActiveConnection:=strConnectString, _
    CursorType:=adOpenDynamic, LockType:=adLockOptimistic

If rst.RecordCount = 0 Then
    MsgBox "No records returned"

    Else

        rst.MoveFirst
            Do While Not rst.EOF
                MsgBox rst.Fields("abc123").Value
                    rst.MoveNext
            Loop

End If

conn.Close
rst.Close

End Sub

【问题讨论】:

    标签: ms-access ms-access-2007 vba


    【解决方案1】:

    您应该能够使用与此非常相似的代码:

    Dim cdb As DAO.Database
    Set cdb = CurrentDb
    cdb.Execute _
            "DELETE FROM LocalTable", _
            dbFailOnError
    cdb.Execute _
            "INSERT INTO LocalTable (abc123) " & _
            "SELECT DISTINCT abc123 " & _
            "FROM " & _
                "[" & _
                    "ODBC;" & _
                    "Driver={SQL Server};" & _
                    "Server=.\SQLEXPRESS;" & _
                    "Database=DataSet;" & _
                    "Trusted_Connection=yes;" & _
                "].[dbo.abc]", _
            dbFailOnError
    Set cdb = Nothing
    

    您可以只将组合框绑定到 [LocalTable],然后应该会出现 SQL Server 表中的更新值。

    【讨论】:

    • 对不起,我的问题可能很笼统,所以我希望你能具体帮助我。基本上我想从 SQL Server 更新 Access 文件中的表。但我需要先从 SQL Server 运行查询。假设我在 SQL Server 中有一个巨大的数据表。我需要从 access vba 运行查询“SELECT DISTINCT Location FROM SQLServerName”,然后使用来自 SQL Server 的查询结果也将更新来自同一 Access 文件的表。
    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多