stigi hat geschrieben:also im access funktioniert das query ohne Probleme. Access frägt mich nach 3 Werten:
nach TEXTE.TEX_AUSGABE - da geb ich dann das original ein 'Runden'
nach TEXTE.TEX_NUMMER - da geb ich die referenznummer 63308 ein
und nach TEXTE.TEX_SPRACHE - da geb ich dann 'deu' ein
Hi stigi!
Da haben wir ja schon das Problem. Access fragt dich immer nur dann nach Parametern, wenn es einen Ausdruck nicht kennt. "TEXTE.TEX_AUSGABE" ist so ein Ausdruck. Woher soll Access denn wissen, dass du damit ein Tabellenfeld meinst? Du hast in der SQL-Anweisung ja kein "FROM" mit drinnen, das dem Access mitteilen würde, welche Tabellen erwartet werden. Ob dieses Feature (mit mehreren Tabellen) von Access überhaupt unterstützt wird, dass weiß ich auch nicht. Das müsste man ausprobieren oder nachschlagen.
Aber um die ganze Sache nicht zu kompliziert werden zu lassen --> hier die einfache Lösung:
Finde in der ersten SQL-Anweisung alle notwenigen Werte heraus und verwende die Werte, nicht die Felder, in der zweiten SQL-Anweisung.
So auf diese Art:
Code: Alles auswählen
sql = """
SELECT
id, vorname, nachname
FROM
adressen
WHERE
(id = 1)
"""
cur.execute(sql)
id, vorname, nachname = cur.fetchone()
sql = """
UPDATE andere_tabelle
SET
vorname = '%(vorname)s',
nachname = '%(nachname)s'
WHERE
(id = %(id)s)
""" % {
"id": id,
"vorname": vorname,
"nachname": nachname
}
cur.execute(sql)
Dieser Code soll nur verdeutlichen, wie ich das meine.
mfg
Gerold