我在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
答案 0 :(得分:1)
由于您的SQL是静态的,因此没有理由(重新)在VBA中创建它。
创建一个查询并将SQL粘贴到其中。这将是一个交叉表查询。
使用名称保存,例如Q1。
现在,创建一个新查询,比如Q2,在这里您使用Q1作为源。将查询Q2调整为追加查询或创建表查询。您可以随时运行(执行)此查询。