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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

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?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

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 ^^