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
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"
Hallo Eberhard,
vielen Dank für Deine Nachricht! Werde es mir Morgen genau ansehen!
Schönen Grüße
Albert