2016-04-07 21 views
-1

Ich versuche, eine dynamische SQL-Anweisung zu machen, in der der Befehl das Feld "Drawn" in einem bestimmten Bereich der abhängig von dem Wert von j hinzufügen wird. Dies liegt daran, dass es mehrere Fälle gibt, in denen das Feld "Rev" in der Tabelle "Revision" erscheint. Ich habe diese Anweisung im Abfrageentwurf erstellt, aber nur um ein bestimmtes Feld in der Tabelle zu aktualisieren, unabhängig von meinem Zähler j. Ich bekomme 'JOIN Ausdruck nicht unterstützt'. Kann mir jemand bei diesem Problem helfen?INNER JOIN VBA Zugriff

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 
+0

'ArealineNmuber'? – David

+0

@David, behob ich das Problem, Area war eine Tabelle und lineNumber ein Feld. Also habe ich das "." zwischen ihnen. Aber jetzt bekomme ich 'Eine RunSQL-Aktion erfordert ein Argument, bestehend aus einer SQL-Anweisung' –

+0

Die Eingabe der Fehlermeldung in Google ist immer ein guter Anfang: http://Stackoverflow.com/a/27425050/328193 – David

Antwort

0

Wahrscheinlich suchen Sie Methode wie OpenRecordset ...
Das Stutzen-Cord-Einsatz Ergebnisfelder einfach Update zu erzeugen, mit Ihnen durch RunSQL Verfahren ausgeführt werden kann.

EDIT:
Beispiel Update:

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