Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Update und select verbinden

Begonnen von Moe62, April 08, 2020, 08:48:31

⏪ vorheriges - nächstes ⏩

Moe62

Hallo ich habe folgendes Problem:
Ich möchte in der Tabelle "Print_Bescheid" das Feld "PB_G1_Art" mit dem Ergebnis eines selects füllen. In der Tabelle Print_Bescheid ist immer nur ein einziger Datensatz vorhanden.
Die Variable "sGeh_Art" enthält eine Zahl.

sSQL = "UPDATE Print_Bescheid " & _
                   "Set PB_G1_Art = (Select gehart_name from genehmigungsart WHERE gehart_nr = sGeh_Art)"


Vielen Dank fürs Drüberschaun!

DF6GL

Hallo,

wenn Du fehlerhaften Syntax ansprichst:

ZitatsSQL = "UPDATE Print_Bescheid " & _
                   "Set PB_G1_Art = (Select Top 1 gehart_name from genehmigungsart WHERE gehart_nr = '" & sGeh_Art & "')"


wobei ich von Datentyp TEXT bei der Variablen "sGeh_Art"  ausgehe und die Unterabfrage nur einen DS zurückliefern darf.

Moe62

Hallo und vielen Dank für die schnelle Antwort.
Der Select kann nur einen DS zurückliefern, weil gehart_Nr jeweils nur einmal vorhanden ist.
Leider bekomme ich trotzdem die Fehlermeldung "Operation muss eine aktualisierbare Abfrage verwenden".

DF6GL

#3
Hallo,

ok,

Access kann das nicht. Und es scheint, als stünden die beiden Tabellen nicht in Beziehung zueinander.

Versuch dieses:

sSQL = "UPDATE Print_Bescheid, genehmigungsart " & _
                   "Set Print_Bescheid.PB_G1_Art = genehmigungsart.gehart_name WHERE genehmigungsart.gehart_nr = '" & sGeh_Art & "'"




oder benutze etwa dieses:

sSQL = "UPDATE Print_Bescheid " & _
                   "Set PB_G1_Art = " & Dlookup("gehart_name","genehmigungsart","gehart_nr = '" & sGeh_Art & "'")



Es werden alle DS in "Print_Bescheid" aktualisiert. Soll das so sein?

Moe62

Nochmals vielen Dank! Die erste Variante funktioniert! Bin total happy!!!!
Echt tolles Forum!

Uwe_Noob

Hallo.
wenn das ok ist würde ich mich in dieses Thema mit einklinken.
Ich würde gern in diese Update Syntax
db.Execute "UPDATE tabverben SET tabverben.YO = Replace([tabverben].[yo],'ar','o') WHERE (((tabverben.YO) Like '*ar'));"
eine Unterabfrage einfügen, die Prüft ob ein Feld "check_konj" in der gleichen Tabelle eine 0 enthält.
Leider weiß ich grad nicht wo ich da ansetzen kann :-(

Gruß
Uwe
2 Monate Access ^^

MzKlMu

Hallo,
wozu Unterabfrage wenn es in der gleichen Tabelle ist ?
Db.Execute "UPDATE tabverben SET YO = Replace([yo],'ar','o') WHERE YO Like '*ar' And check_konj = 0"
Gruß Klaus

Uwe_Noob

Oh man wieder viel zu kompliziert gedacht ^^
Danke dir
2 Monate Access ^^