内部加入VBA访问

时间:2016-04-07 18:34:43

标签: sql access-vba

我正在尝试执行一个动态SQL语句,其中命令将在某个区域中添加字段“Drawn”,具体取决于j的值。这是因为有几个实例出现“修订版”表中的字段“Rev”。我在查询设计中创建了这个语句,但只更新表中的特定字段,而不依赖于我的计数器j。我得到'不支持JOIN表达'。任何人都可以帮我解决这个问题吗?

Select Case selection(n)
Case "A"
    j = 1
Case "B"
    j = 2
Case "0"
    j = 3
Case "1"
    j = 4
Case "2"
    j = 5
End Select

With rs
    While Not .EOF
          DoCmd.RunSQL "SELECT Area.Drawn " & _
                                 "FROM (Revision INNER JOIN RevDesc ON Revision.Rev" & j & " = RevDesc.Rev) " & _
                                 "INNER JOIN Area ON Revision.LineNumber = ArealineNmuber ;"
.MoveNext   
wend 
end with

1 个答案:

答案 0 :(得分:0)

您可能正在寻找像OpenRecordset ......这样的方法 Lopping Recordset使用结果字段生成简单的Update,您可以使用RunSQL方法运行。

编辑:
示例更新:

UPDATE [Revision] 
SET [Drawn] = (SELECT [Drawn] FROM [Area] WHERE [Area].[LineNumber] = [Revision].[LineNumber] )
WHERE Exists(SELECT 1 FROM [RevDesc] 
  WHERE [RevDesc].[Rev] = [Revision].[Rev]);