title image


Smiley TIPP: Ersetzungen quer über mehrere Datenbanken
Derartige Daten in getrennten Datenbanken zu halten hört sich schon mal leicht merkwürdig und kontraproduktiv an.



Aber wenn's denn sein muss - mal angenommen, alle Datenbanken (und nur diese Datenbanken) befinden sich in einem Verzeichnis, dann geht das in etwa so:



Dim FName as String, Text1 as string, Text2 as String

Const Path = "C:\woauchimmer\"

Fname = Dir(Path & "*.mdb")

Text1 = "daß"

Text2 = "dass"

Do until FName = ""

Currentdb.Execute "UPDATE DeineTabelle IN '" & Path & FNmae & _

"' SET DeinFeld = Replace(DeinFeld,'" & Text1 & "','" & Text2 & "')"

FNname = Dir()

Loop



wenn die Ersetzung quer über alle Tabellen in der Datenbank gehen soll:



Dim FName as String, Text1 as string, Text2 as String, TblName as String, _

DB as DAO.Database, RS as DAO.Recordset

Const Path = "C:\woauchimmer\"

Fname = Dir(Path & "*.mdb")

Text1 = "daß"

Text2 = "dass"

Do until FName = ""

Set DB = DBEngine(0).Opendatabase(Path & FName)

Set RS = DB.Openrecordset("SELECT Name FROM MSysObjects" & _

" WHERE Type=1 AND Flags=0", dbopensnapshot)

Do Until RS.EOF

DB.Execute "UPDATE [" & RS!Name & "]" & _

" SET DeinFeld = Replace(DeinFeld,'" & Text1 & "','" & Text2 & "')"

RS.Movenext

Loop

FNname = Dir()

Loop







Leider schreibst auch du nicht, welche Version von Access bzw. welches Datenmodell du einsetzt. (Das obige Beispiel ist DAO und funktioniert ab A2000)



Wobei ich wohl nicht erzählen muss, dass man bei derartigen Ersetzung mit sehr großer Sorgfalt vorgehen muss, um keine Verschlimmbesserung zu betreiben.


Gruß aus dem Norden
Reinhard


Bitte immer die Access-Version angeben!
DB-Wiki


Wie man Fragen richtig stellt

YaccessAccess-FAQUnd ansonsten: Wikipedia




geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: