我在访问

时间:2018-05-21 12:16:11

标签: vba ms-access

我在Access中编写了一个VBA代码。但是,表或查询未添加到访问中。我没有在访问中看到VBA代码的结果。

Option Compare Database
Sub TransformX1()
    Dim strSQL As String
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Set dbs = CurrentDb
    strSQL = ""
    strSQL = strSQL & "TRANSFORM Sum(BAR1.[TON]) AS SumOfTON " & vbCrLf
    strSQL = strSQL & "SELECT BAR1.[MABD], Sum(BAR1.[TON]) AS [Total Of TON] " & vbCrLf
    strSQL = strSQL & "FROM BAR1 " & vbCrLf
    strSQL = strSQL & "WHERE (((BAR1.[MABD])<1300) AND ((BAR1.[MAGH])<1300) AND ((BAR1.G)=1)) " & vbCrLf
    strSQL = strSQL & "GROUP BY BAR1.[MABD] " & vbCrLf
    strSQL = strSQL & "PIVOT BAR1.[MAGH];"
    Set rst = dbs.OpenRecordset(strSQL)
End Sub

1 个答案:

答案 0 :(得分:1)

由于您的SQL是静态的,因此没有理由(重新)在VBA中创建它。

创建一个查询并将SQL粘贴到其中。这将是一个交叉表查询。

使用名称保存,例如Q1。

现在,创建一个新查询,比如Q2,在这里您使用Q1作为源。将查询Q2调整为追加查询创建表查询。您可以随时运行(执行)此查询。