jensgebken
Goto Top

Access - Vertausche Zellenwerte

Hallo Gemeinschaft,

habe eine Access Tab mit folgendem Problem

die Tab sieht so ähnlich aus

id__Datum___Gas___Wasser__Strom

nun ist mir im Script anfänglich ein Fehler passiert beim Füllen der Tabelle

ich muss nun bis Datum 31.10.2023 prüfen, ob die Werte bei Strom höher sind als bei Gas - wen dem nicht so ist, müssen die beiden Werte vertauscht in die Tabelle geschrieben werden

könnt ihr dabei helfen

Content-Key: 7652336108

Url: https://administrator.de/contentid/7652336108

Printed on: May 9, 2024 at 08:05 o'clock

Member: StefanKittel
StefanKittel Jun 26, 2023 at 08:00:58 (UTC)
Goto Top
Moin,

ja, da gibt es mehrere Wege.
Welcher für Dich funktioniert hängt von Deinen Fähigkeiten ab.

Zuerst ein Backup erstellen!

a) Visual Bassic (VBA)
Alle Datensätze durchgehen und wenn erforderlich die jeweiligen Werte in das richtige Feld schreiben.

b) Abfrage mit Hilfsspalte
Eine Abfrage erstellen wo Strom>Gas ist und die Werte in zwei Hilfsspalten GasNeu und StromNeu schreiben.
Dann eine Abfrage erstellen der diese Spalten in die andere Spalte schreibt.

c) Abfrage mit Hilfstabelle
Eine Abfrage erstellen welche die Werte in eine neue Tabelle schreibt.
Dann die alte Tabelle löschen

d) Excel
Alles nach Excel kopieren und von Hand bearbeiten.
Dann die Tabelle löschen und von der Excel-Datei importieren.

e) Werte von Hand korrigieren

Stefan
Member: jensgebken
jensgebken Jun 26, 2023 at 08:21:02 (UTC)
Goto Top
Danke - a) bekomme ich hin - dachte es gäbe nur eine elegantere query ohne hilfstabelle
Member: jensgebken
jensgebken Jun 26, 2023 at 09:26:47 (UTC)
Goto Top
--- mist doch nicht - dachte es geht wie in excel - kann mir bitte jemand helfen vba - wie so eine schleife aussehen müsste
Mitglied: 7426148943
Solution 7426148943 Jun 26, 2023 updated at 10:26:41 (UTC)
Goto Top
Da braucht es keine Hilfstabelle ... Einfach ne SQL Update Abfrage erstellen ...
UPDATE Zählerstände 
SET Gas = Strom, Strom = Gas
WHERE ((Gas > Strom) AND (Datum <= #10/31/2023#));

Zeppel
Member: em-pie
Solution em-pie Jun 26, 2023 at 10:17:59 (UTC)
Goto Top
Moin,

ACCESS kann ja auch SQL Queries:

Als allererstes BACKUP erstellen!

Danach
UPDATE myTable 
SET 
  Strom = CASE WHEN Strom > Gas THEN Gas ELSE Strom END
  , Gas = CASE WHEN Strom > Gas THEN Strom ELSE Gas END
WHERE Datum <= '31.10.2023'  

Alles ungetestet, aber das sollte i. d. R. funktionieren
Member: StefanKittel
StefanKittel Jun 26, 2023 at 10:35:18 (UTC)
Goto Top
Zitat von @jensgebken:
Danke - a) bekomme ich hin - dachte es gäbe nur eine elegantere query ohne hilfstabelle
Es geht auch mit einer Query. Aber hier gilt KISS. Keep it simple stupid. Der Mehraufwand mit backup, testen, wiegt Deinen Anwendungsfall nicht auf. Und wenn Du es aus dem Ärmel geschüttelt hättest, hättest Du ja nicht gefragt.
Member: jensgebken
jensgebken Jun 26, 2023 at 11:29:53 (UTC)
Goto Top
Herzlichen Dank für die Hilfestellung