Hvis det er hver gang der står "aa" skal have det ændret til "å" og f.eks. "oe" til "ø", kan du måske gøre det ved at indlæse den i excell, og så bruge søg og erstat. Jeg er ikke helt sikker på du kan gøre dette i access. Efter du har køret dette i excell kan du herefter åbne den igen i access. Jørgen
Du kan bare åbne tabellen og vælge rediger - erstat.
Hvis du skal erstatte enkelte bogstaver/tegn inden i feltværdier skal du fjerne hakket i "Hele feltet". Du kan også vælge om du vil lave søg og erstat på et enkelt felt eller på alle felter. For at få ændret alle poster trykker du bare "Erstat alle".
Hvis du ikke har brug for at køre denne erstatning automatisk (flere gange) så burde dette være nok. Ellers kan man nok lave en makro til det også.
Prøv denne istedet for en macro (det er noget skidt). Du kan selv forbedre den med procedurekald etc. Henrik
Sub Opdaterrecord() Dim DB As Database Dim Rst1 As Recordset Dim strSearch As String, StrErstat As String Dim Crst1 As Integer, StrToSearch As String Dim I As Integer, IntWhere As Integer
Set DB = CodeDb() Set Rst1 = DB.OpenRecordset("tabel1") strSearch = "æ" StrErstat = "a"
If Not Rst1.EOF Then Rst1.MoveLast Crst1 = Rst1.RecordCount Rst1.MoveFirst
For I = 1 To Crst1 StrToSearch = Rst1![tekstfelt] 'søg efter teksten IntWhere = 1 Do While IntWhere IntWhere = InStr(StrToSearch, strSearch)
If IntWhere Then Rst1.Edit Mid(StrToSearch, IntWhere, Len(strSearch)) = StrErstat Rst1![tekstfelt] = StrToSearch Rst1.Update End If
Loop Rst1.MoveNext Next I
Rst1.Close End If MsgBox " tabellen er nu opdateret" End Sub
Jeg ser nu, at du vil udskrifte æ med ae og ø med oe etc., så jeg har elaboreret lidt på rutinerne: Jeg syntes ikke, at den caseSenxitive del virker, men god fornøjelse med den.
Henrik
Sub startsøgogreplace() Opdaterrecord "tabel1", "øl", "YtMedøl", True End Sub
Sub Opdaterrecord(table As String, strSearch As String, StrErstat As String, fCS As Boolean) Dim DB As Database Dim Rst1 As Recordset Dim Crst1 As Integer, StrToSearch As String Dim I As Integer, IntWhere As Integer, intCS As Integer
Set DB = CodeDb() Set Rst1 = DB.OpenRecordset(table)
' Konverter ja/nej til en integer brugbar for InStr() intCS = IIf(fCS, 2, 1)
If Not Rst1.EOF Then Rst1.MoveLast Crst1 = Rst1.RecordCount Rst1.MoveFirst
For I = 1 To Crst1 StrToSearch = Rst1![tekstfelt] 'søg efter teksten IntWhere = InStr(1, StrToSearch, strSearch, intCS) Do While IntWhere ' Udbyt nu med den fundne streng StrToSearch = Left$(StrToSearch, IntWhere - 1) & _ StrErstat & _ Mid$(StrToSearch, IntWhere + Len(strSearch)) ' Find den næste forekomst IntWhere = InStr(IntWhere + Len(StrErstat), _ StrToSearch, _ strSearch, _ intCS) Loop Rst1.Edit Rst1![tekstfelt] = StrToSearch Rst1.Update Rst1.MoveNext Next I
Rst1.Close End If MsgBox " tabellen er nu opdateret" End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.