Office: (Office 2003) Access Suchen und Ersetzen Datenbank tabellengestützt!

Helfe beim Thema Access Suchen und Ersetzen Datenbank tabellengestützt! in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Dann sollten doch konsequenter Weise alle Zeichenketten, die das Suchkriterium nicht erfüllen, gefiltert werden? Das wird vermutlich nicht viel... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von webhugo, 20. Januar 2009.

  1. Access Suchen und Ersetzen Datenbank tabellengestützt!


    Das wird vermutlich nicht viel bringen. Man müsste mit "not like" o.ä. suchen, was zu einem Tablescan führt. Da kommt es imo auf das Update auch nicht mehr an.
    Wäre es nur ein Suchkriterium, so wäre der Vergleich je Zeile sicherlich noch ganz gut brauchbar. Es müssen aber mehrere Kriterien geprüft werden. Ob sich dann eine extra Auswertung lohnt, bezweifle ich.

    Folgendes könnte man eventuell probieren:
    Code:
    ... Falls das jemand prüfen will: es wäre interessant, ob die Funktion ReplaceHtmlCodes(..) zweimal je DS ausgeführt wird. Wenn das das nur einmal je DS ausgeführt wird, dann könnte damit ein unnötiges Update ohne großen Zusatzaufwand verhindert werden.
    /edit: ich probierte das gerade aus: es wird im Where und beim Update die Funktion ausgeführt. Jetzt müsste man dann noch klären, was schneller ist: mehrere unnötige Updates oder die doppelte Funktionsausführung bei den Treffern. (Wenn einige 100k DS ausgewertet werden müssen und darin viele Werte vorkommen, die keine Ersetzungen erfordern, könnte eine optimierte Funktion zur Prüfung eine Beschleunigung bringen.)
     
    Josef P., 24. Januar 2009
    #16
  2. FW
    FW
    \@Josef P.: Also ich hab das jetzt mal spaßeshalber mit 1.000.000 DS getestet. Mit dem Ergebnis, dass die DS ohne WHERE-Bedingung deutlich schneller aktualisiert wurden, als mit der Bedingung feld > "" im UPDATE-Statement! Was mir auch intuitiv einleuchtet. Und Nu?
     
  3. Warum? Oder hattest du keine leeren Felder in der Tabelle? (vermutlich auch keinen Index auf das Feld ... was aber durchaus der Realität entsprechen wird, falls das ein Datenfeld ist, nachdem nicht laufend gefiltert wird.)

    /edit:
    Wenn kaum leere Felder in der Tabelle sind, so kann das Weglasen von "where feld > ''" durchaus schneller sein. Dann darf man aber nicht vergessen, dass man NULL in der Funktion ReplaceHtmlCodes berücksichtigt. ... das könnte dann allerdings wieder dazu führen, dass die Variante mit >'' doch wieder schneller ist.
    Imo gibt es keine "allgemein richtige" Variante, da das viel zu sehr von den vorhandenen Daten abhängt - und bei einmaligen Aktualisierungen für die Korrektur von Daten wird da auch ziemlich egal sein. *wink.gif*
     
    Josef P., 25. Januar 2009
    #18
  4. FW
    FW

    Access Suchen und Ersetzen Datenbank tabellengestützt!

    ... ok, ich hatte Leereingaben nicht berücksichtigt, dann ist die WHERE-Version deutlich schneller! Die indizierten Versionen (feld besitzt eine mehrdeutigen Schlüssel) sind aber für beide Fälle erheblich langsamer, als die nicht indizierten. D. h. doch dann wohl, dass das Aktualisieren von indizierten Spalten wesentlich langsamer ist, als das Suchen in nicht indizierten Spalten?
     
  5. Meist wird aber viel mehr gesucht als aktualisiert, oder? *wink.gif*

    Deine Feststellung zeigt aber sehr gut, dass ein Index auch bremsen kann. Daher sollten nur jene Indizes in die Tabelle, die auch (ausreichend) genutzt werden.

    Außerdem: unbedingt immer die Index-Übersicht im Tabellenentwurf ansehen. Oftmals werden vor allem bei den PK-Feldern doppelte Indizes angelegt, weil diese doofe AutoIndex-Option aktiviert ist, die für Felder mit ID u. ä. automatisch einen Index setzt. Stellt man dann nachträglich auf so ein Feld den PK ein, hat man schon einen doppelten Index angelegt.

    Eines sollte man auch nie vergessen: beim Verknüpfen von 2 Tabellen mit RI setzt Access automatisch einen Index, welcher aber im Index-Fenster nicht angezeigt wird.
     
    Josef P., 25. Januar 2009
    #20
  6. Hier nun die Funktion, die an einigen Stellen noch überarbeitet wurde (am besten kopieren, ich weiß nicht, ob ich alles markiert habe):
    Code:
    Anwendung findet die Funktion dann so:
    Code:

    Hallo Arne,

    ich bin leider jetzt erst zum Testen gekommen - funktioniert super vielen vielen Dank für die Unterstützung!

    Viele Grüße

    Webhungo
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    webhugo, 29. Januar 2009
    #21
  7. Natürlich auch einen herzlichen Dank an Josef und alle Anderen!

    Viele Grüße

    Webhungo
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    webhugo, 29. Januar 2009
    #22
  8. Access Suchen und Ersetzen Datenbank tabellengestützt!

    Ist es möglich, das von einem Feld auf eine ganze Tabelle auszuweiten?



    Gruß
    Benjamin
     
    Kamelkaze, 31. Januar 2009
    #23
  9. Letztendlich wird es darauf hinauslaufen, dass man jedes Feld mit der Funktion behandelt:

    Code:
    @Webhugo (falls du überhaupt noch mitliest): Bitte in Zukunft nicht mehr komplette Zitate verwenden - das ist meist überflüssig. Danke.
     
    Arne Dieckmann, 31. Januar 2009
    #24
  10. Das Problem was ich habe, ist dass ich Tabellen importiere, welche immer unterschiedlich viele Felder haben.

    Das heisst, dass manchmal Feld 1 bis Feld 300 und manchmal Feld 1 bis Feld 250 vorhanden ist.


    Daher wäre eine Universallösung, welches automatisch alle Felder durchsucht und ersetzt Gold wert für mich *rolleyes.gif*
     
    Kamelkaze, 31. Januar 2009
    #25
  11. Sind wirklich alle Felder zu behandeln? Dann könnte man sich eine Funktion basteln, die die Feldauflistung durchläuft und somit den SQL-String dynamisch zusammensetzen kann. Den String dann nur noch mit CurrentDb.Execute ausführen, fertig.
    Falls es Ausnahmefelder (aufgrund des Datentyps o.ä.) gibt, müsste man das beim Durchlauf der Feldauflistung berücksichtigen.


    Reicht das als Ansatz?
     
    Arne Dieckmann, 31. Januar 2009
    #26
  12. Bin mir nicht sicher ob miene Kenntnisse über Visual Basic dafür ausreichen. *frown.gif*
     
    Kamelkaze, 31. Januar 2009
    #27
  13. Access Suchen und Ersetzen Datenbank tabellengestützt!

    Anbei eine einfache Funktion, die Ausnahmen (Feldtypen oder bestimmte Namen) nicht berücksichtigt:
    Code:
    Die Funktion brauchst du zusätzlich zu dem Code in Beitrag #11. Eine Abfrage muss nicht angelegt werden - diese wird durch Aufruf von ?TabelleSaeubern("DeinTabellenname") ausgeführt.
     
    Arne Dieckmann, 31. Januar 2009
    #28
  14. Wow danke!

    Jetzt machst du dir schon die Mühe und ich schaff es nichtmal die Funktion richtig auszuführen *frown.gif*


    Wie meinst du das mit ?TabelleSaeubern("DeinTabellenname") ausführen ohne Abfrage?
     
    Kamelkaze, 31. Januar 2009
    #29
  15. Arne Dieckmann, 31. Januar 2009
    #30
Thema:

Access Suchen und Ersetzen Datenbank tabellengestützt!

Die Seite wird geladen...
  1. Access Suchen und Ersetzen Datenbank tabellengestützt! - Similar Threads - Access Ersetzen Datenbank

  2. Ausdruck eines Etiketts auf verschiedenen PCs steuern

    in Microsoft Access Hilfe
    Ausdruck eines Etiketts auf verschiedenen PCs steuern: Hallo, ich habe mir ein kleines Etikettenprogramm geschrieben ( ACCESS 2016) und nutze dies auf 3 PCs. An jedem PC ist ein WLAN Drucker. Wenn ich nun eine Änderung am Programm mache und das...
  3. Access als Mediaplayer

    in Microsoft Access Hilfe
    Access als Mediaplayer: Hi zusammen! Seit das Windows Media Center (WMC) tot ist, nutze ich notgedrungen MS Access als schlechten Ersatz. Ich benutze nur die Audiofunktionalität und es funktioniert soweit alles über...
  4. Smarttags in Access LTE (2021)

    in Microsoft Access Hilfe
    Smarttags in Access LTE (2021): Hallo Leute, Ich hätte da mal eine Frage zu den Smarttags. In meinen uralten Access-Buch von 2003 steht in BSP noch was drinnen von Smarttag in den Eigenschaften die man aktivieren soll. Ich habe...
  5. Excel zu Access

    in Microsoft Access Hilfe
    Excel zu Access: Hallo Suche ein Lösung für eine Umsetzung von Excel zu Access. Die Tabelle KL enthält nebst der Projekt-ID (selbst-erzeugt) diverse Felder: u.a. MessOrte in Form 1,2,3,A,B (=5Messpunkte Split mit...
  6. Access Neuer Datensatz im Formular

    in Microsoft Access Hilfe
    Access Neuer Datensatz im Formular: Hallo - ich bin neu hier und Anfängerin im VBA Programmieren. Ich habe eine Frage zu VBA: In meinem Formular kann ich Daten eingeben, wenn ich das Formular wieder öffne, wird der letzte...
  7. automatische Abfrage URL via Artikelnummer

    in Microsoft Access Hilfe
    automatische Abfrage URL via Artikelnummer: Guten Tag Bei der Aktualisierung der Homepage und aufgrund eines Plugin-Wechsels des Üebersetzungstools hat wordpress alle Permalinks der Produkte verändert. Unserem Webmaster war nicht bekannt,...
  8. Access 2000 Werte ersetzen

    in Microsoft Access Hilfe
    Access 2000 Werte ersetzen: Hallo, ich habe hier eine Oracle Datenbank aus welcher ich drei Tabellen exportiert habe. Jetzt sollen Inhalte durch neue ersetzt werden und dann wieder zurück gespielt werden. Die drei...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden