Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: silentwolf am April 06, 2020, 19:53:23

Titel: SQL Update mit Zuweisungstabelle und Parameter
Beitrag von: silentwolf am April 06, 2020, 19:53:23
Hallo,
ich stehe gerade vor einen kleinen Problem das ich nicht selbst hinbekomme.

Sub UpdateMitParameter(strTable As String)
    Dim db As DAO.Database   
    Set db = CurrentDb   
    Dim strSQL As String   
    'ALT ist eine Tabelle
    'strTable soll übergeben werden
   
    'diese funktioniert wenn ich beide Tabellen benenne also ohne Parameter
'    strSQL = "UPDATE ALT INNER JOIN Neu ON ALT.UMS = Neu.UMS SET Neu.Umsatztext = [ALT].[Umsatztext];"

    'diese funktioniert nicht
'    strSQL = "UPDATE ALT INNER JOIN " & strTable & "  ON  ALT.UMS = strTable  [UMS] SET strTable [Umsatztext] = [ALT].[Umsatztext];"

    db.Execute strSQL
   
    Set db = Nothing

End Sub


wie müsste ich denn diesen strSQL ändern damit ich wie oben hoffentlich ersichtlich einen strTable Parameter mitzugeben.
ALT ist eine Tabelle die ich immer gleich halten würde also brauche ich hier keinen Parameter. Aber ich würde gern den anderen Parameter mitgeben in strTable um die Abfrage flexible gestallten zu können.

Hab schon probiert aber leider bekomme ich immer Fehlermeldungen.

Könnte mir hier jemand bitte behilflich sein?

Vielen Dank

Schöne Grüße
Albert
Titel: Re: SQL Update mit Zuweisungstabelle und Parameter
Beitrag von: ebs17 am April 06, 2020, 21:24:18
Eine Tabelle einzubauen hat mit Parameter nichts zu tun. Das ist so nicht lösbar.

Lösbar ist immer, eine SQL-Anweisung per VBA-Stringzusammensetzung zusammen zu bauen.

ZitatstrSQL = "UPDATE ALT INNER JOIN " & strTable & "  ON  ALT.UMS = strTable.[UMS] SET strTable.[Umsatztext] = [ALT].[Umsatztext]
Allerdings müsste man bei einer Variablen dann konsequent sein.

Der pragmatischere Weg ist die Verwendung eines Tabellenalias. Der bleibt dann konstant, die Zuweisung der Tabelle erfolgt an genau einer Stelle:
strSQL = "UPDATE ALT AS A INNER JOIN " & strTable & " AS N  ON  A.UMS = N.UMS SET N.Umsatztext = A.Umsatztext"
Titel: Re: SQL Update mit Zuweisungstabelle und Parameter
Beitrag von: silentwolf am April 06, 2020, 21:40:22
Hallo Eberhard,

vielen Dank für Deine Nachricht! Werde es mir Morgen genau ansehen!

Schönen Grüße

Albert