Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: silentwolf am September 29, 2015, 10:01:12

Titel: Code Verbesseren?
Beitrag von: silentwolf am September 29, 2015, 10:01:12
Hi ich hab hier nur mal einen Frage die mir vielleicht jemand erklären könnte.

Sub UpdateUmsatztext()
'Hier werden zu Beginn alle im Umsatztext Feld Bezeichnungen geändert!

    Dim rcsKonto As Recordset
   
    Dim db As Database
    Set db = CurrentDb
 
    Set rcsKonto = db.OpenRecordset("SELECT * FROM tbl_CSV_2014 WHERE Umsatztext LIKE 'Zurich Vers*'", dbOpenDynaset)
    Do Until rcsKonto.EOF
   
    rcsKonto.Edit
    rcsKonto.Fields("Umsatztext").Value = "Zürich Versicherung"
    rcsKonto.Update
   
        rcsKonto.MoveNext
    Loop
   
    Set rcsKonto = db.OpenRecordset("SELECT * FROM tbl_CSV_2014 WHERE Umsatztext LIKE 'Zürich Vers*'", dbOpenDynaset)
    Do Until rcsKonto.EOF
   
    rcsKonto.Edit
    rcsKonto.Fields("Umsatztext").Value = "Zürich Versicherung"
    rcsKonto.Update
   
        rcsKonto.MoveNext
    Loop
End Sub


Oben ist ein Code den ich mir zusammengeschustert habe ;) der ist aber noch länger und immer die selbe Art und Weise wie man oben sehen kann nur eben halt mit anderen Angaben.
Wie könnte man diesen Code denn besser schreiben? Der wird sonst ja relativ unübersichtlich.
Und wenn ich nach jeder Loop einen neue Prozedur schreibe dann hat man ja in Null Komma nix 30 Codes oder so.
Würde mich freuen wenn mir jemand das vielleicht kurz erklären könnte.

:) Lg
Danke schon im Voraus!!

Titel: Re: Code Verbesseren?
Beitrag von: el_gomero am September 29, 2015, 10:30:44
Hallo,

hier bedarf es überhaupt keines Codes, sondern einer banalen Aktualisierungsabfrage, wenn es sich um mehrere Versicherer handelt dann mit einer Zuordnungstabelle in Referenz.
Titel: Re: Code Verbesseren?
Beitrag von: silentwolf am September 29, 2015, 10:41:33
Hallo Jürgen,

danke für Deine Nachricht!
Ich verstehe was Du meinst aber leider sind hier nicht nur Versicherer sondern verschiedene Daten in einer Spalte die ich per Code alle auf einmal aktualisieren möchte :(
Wie ich eben schon geschrieben habe ist das nur ein kleiner Teil des codes.. Aber denkst Du es wäre einfacher oder schneller mit verschiedenen Abfragen zu arbeiten?

Schöne Grüße
Albert
Titel: Re: Code Verbesseren?
Beitrag von: el_gomero am September 29, 2015, 10:57:35
Hallo Albert,

Zitat
Aber denkst Du es wäre einfacher oder schneller mit verschiedenen Abfragen zu arbeiten?
Auf jeden Fall. Dein Code gibt ja nur 2 Beispiele. Dafür würde ich eine Zuordnungstabelle nehmen, die alle Schreibweisen für die Züricher enthält und in einem weiteren Feld die korrekte Bezeichnung. In einer Abfrage werden dann die Felder mit den zu korrigierenden Werten verknüpft und in einem Rutsch mit dem richtigen Wert aktualisiert. Die Hilfstabelle kannst ja mit gruppierten Werten aus der Ursprungstabelle füllen. Geht alles ratz-fatz.
Titel: Re: Code Verbesseren?
Beitrag von: silentwolf am September 29, 2015, 11:12:55
Hallo Jürgen,
ok danke für die Info! Ich werde mal schaun wie ich das hinbekomme :)
Ich versuche es mal hab das noch nie so probiert aber wird schon schiefgehen sonst muss ich halt nochmal nachfragen ;)

Danke!!
Schöne Grüße

Albert
Titel: Re: Code Verbesseren?
Beitrag von: silentwolf am September 29, 2015, 12:29:08
So muss leider doch nochmal nachfragen...  :-[
Habe nun eine tbl_Zuordnung erstellt. Mit ID; Zuordnung dort befinden sich alle Schreibweisen und eine Bezeichnung dort sind die Korrekten Namen enthalten.
Nun muss ich nun diese beiden Tabellen verknüpfen also tbl_CSV wo alle Daten enthalten sind mit der tbl_Zuordnung.
tbl_CSV 1: und tbl_Zuordnung N..
Ma tut mir echt leid aber das hab ich noch nie gemacht grrr...
Titel: Re: Code Verbesseren?
Beitrag von: el_gomero am September 29, 2015, 12:46:56
die Tbl_Zuordnung braucht die Felder (Inhalt sollte selbsterklärend sein
Die Daten aus der Tabelle schreibst du da erst mal rein:

INSERT INTO Tbl_Zuordnung ( Bez_Quelle )
SELECT Umsatztext
FROM tbl_CSV_2014
GROUP BY Umsatztext;

das Feld Bez_richtig befüllst du manuell.

Bez_Quelle wird in der Abfrage auf Umsatztext verknüpft. Du ziehst dann aus tbl_CSV_2014 das Feld Umsatztext nach unten, stellst auf Aktualisierungsabfrage um und schreibst bei "Aktualisieren" =Tbl_Zuordnung.Bez_richtig. Dann Ausführen und fertig.
Titel: Re: Code Verbesseren?
Beitrag von: silentwolf am September 29, 2015, 13:02:11
Hi Jürgen!
Pff na das geht ja gut :)
Vielen vielen Dank Du warst mir jetzt eine riesen Hilfe!!!!
Hat mir sehr viel Zeit erspart!
Danke nochmal!

Albert