2.4k Aufrufe
Gefragt in Datenbanken von
Sehr geehrter Experte(in),

meine Tabelle in Access 2002 hat folgenden Aufbau:

(1.Feld) = Konto
(2.Feld)= Jahr
(3.Feld)= Januar
(4.Feld)=Feb
(5.Feld) =März
(6.Feld)=April
.....
(14.Feld)=Dez

Es soll vom Jahr = 2013 und Monat Februar alle Datensätze nach Jahr 2014 und Monat März kopiert werden. Besonderheit: Es existiert im Tabel bereits das Jahr 2014 und Werte bei gleichen Konten in anderen Monaten außer Februar. D.h. der Bereich der kopiert werden soll muß für einige Datensätze in der Tabelle addiert und für einge Datensätze editiert werden.

Ich habe es mit Openrecordset versucht., komme aber mit Datensatz editieren in meiner Tabelle nicht weiter.

Besten Dank im voraus für die Information.

Gruß

PM

4 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

Warum löst Du das nicht mit einer Abfrage?

Was das editieren und addieren betrifft, das wäre ein anderer Kaffee.

Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3
ECDL-Syllabus Version 4.0[/sub]
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hi,

du benötigst zwei Statements. Eine SQL-Abfrage zum UPDATE und eine zum INSERT. Ich habe deine Tabellenstruktur in Tabelle1 realisiert und folgenden Code geschrieben. Du brauchst diesen nur in eine Prozedur einzufügen und auszuführen.

DoCmd.runSQL "UPDATE Tabelle1 AS T2013 INNER JOIN Tabelle1 AS T2014 ON T2013.Konto = T2014.Konto SET T2014.Mrz = [t2013].[Feb]
WHERE (((T2013.jahr)=2013) AND ((T2014.jahr)=2014));"

DoCmd.runSQL "INSERT INTO Tabelle1 ( Mrz, Jahr )
SELECT T2013.Feb, 2014 AS Jahr
FROM Tabelle1 AS T2013
WHERE (((T2013.[jahr])=2013) AND ((Exists (SELECT * from Tabelle1 T2014 where t2013.konto=t2014.konto and t2014.jahr = 2014))=False));"


Hast du dir so was vorgestellt?

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo RaHi,

so habe ich mit das vorgestellt. Großen Dank.

Bem Insert-Befehl habe ich noch das Konto mit aufgenommen.

Gruß und nochmals Dank

P_M

PS:
So was ähnliches kann ich in meinen etwas größern Projekt gebrauchen.
Dort übernehme ich Finanzbuchhaltungsdaten. Leider sind dies nur historische Daten. Mit Kopier- und Änderungsbefehle
werden die Monate im aktuellen Jahr gefüllt und in die nächsten 20 Jahre kopiert.
Eine Berichtsdatei wird dann in eine Tabelle in Excel übernommen und dann Finanz-Berichte wie man sie aus Jahresabschlüssen
wie man von Aktiengesellschaften kennt erzeugt.
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hi P_M,

dann viel Erfolg bei deinem größeren Projekt. Du kannst übrigens diese Abfragen parametrisieren (Stringverknüfungen zusammen mit Laufvariablen einer For-Schleife). So sind auch 20 Jahre schnell mal angelegt.

Gruß
Ralf
...