Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" 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 ^^