22. september 2003 - 15:23Der er
8 kommentarer og 3 løsninger
Erstatte æ,ø og å.
Her kommer så det HELT STORE kr. 1.000.000,- spørgsmål: KAN man lave et script som søger en database igennem, tabeller, kontroller, formularer, rapporter, makroer, moduler osv. og erstatter ALLE forekomster af æ, ø og å med ae, oe og aa? Nogen ideer til hvordan et sådant script (eller en VB applikation) ville se ud?
Lav en formular for hver tabel og løb alle poster med tekst igennem. Brug DoCmd.FindRecord med konstanten "acAnywhere" til at finde kritiske poster. Når du har posten find bogstaverne med Instr() og indsæt de nye bogstaver. Det hele kan kan gøres fra en makro. Den ene formular efter den anden.
Puppetmaster-> hvis du mener, at du ønsker at ændre ALLE Æ, Ø og Å'er i både tabeller, tabeldesign, i formular-design og rapport-design, i vbkode m.m. så tror jeg nok, at du er nødt til at hoste op med lidt flere end 30 point - for det er rimelig omfattende.
Jeg går ud fra, at det er en procedure, som kun skal foretages én gang på en given database? Noget manuelt arbejde må påregnes - f.eks. er det jo nemt selv at ændre i VBA-koden vha en søg/erstat på de 3 bogstaver.
Køb et produkt som SpeedFerret ( http://speedferret.com/ )Det koster 199 dolaser, men det kan gøre det du ønsker. Ellers vil jeg vove den påstand at du har et end og stort stykke arbejde foran dig.
Det behøver ikke at tage særlig lang tid. Der drejer sig om simple og banale VBA-operationer. Og som Thomas antyder kan det meste laves ved kopiering. Har faktisk laves den slags i årevis. Sender exempel senere i aften.
'simple og banale VBA-operationer' - jeg vil nok påstå at det at ændre i feltnavne i tabeller, queries, formularer, rapporter for ikke at tale om rowsource til listboxe og comboboxe o.s.v. (+ selvfølgelig indholdet i alle tabellerne, men det er den nemme del af det) nok ikke lige hører til i den kategori jeg vil kalde simpel. Men selvfølgelig kan det lade sig gøre.
Jeg hæfter mig bare ved at puppetmaster fremhæver ALLE forekomster og ikke kun indholdet af tabellerne.
Thomas, så mange tilfælde af det du nævner kan der vel ikke være....... Fra Access2000 ændres alle forekomster af f.eks.feltnavne automatisk alle steder de forekommer i henvisninger.
Hvad tabeldata angår, kan de ændres med (eksempel med 2 felter):
Private Sub Form_Open(Cancel As Integer) Dim SidsteNr As Long Dim Fund As Integer Dim Text As String
Do Text = [TEXT1] Fund = InStr(Text, "æ") If Fund > 0 Then Text = Left(Text, Fund - 1) & "ae" & Mid(Text, Fund + 1) [TEXT1] = Text End If Text = [TEXT1] Fund = InStr(Text, "ø") If Fund > 0 Then Text = Left(Text, Fund - 1) & "oe" & Mid(Text, Fund + 1) [TEXT1] = Text End If Text = [TEXT1] Fund = InStr(Text, "å") If Fund > 0 Then Text = Left(Text, Fund - 1) & "aa" & Mid(Text, Fund + 1) [TEXT1] = Text End If Text = [TEXT1] Fund = InStr(Text, "Æ") If Fund > 0 Then Text = Left(Text, Fund - 1) & "Ae" & Mid(Text, Fund + 1) [TEXT1] = Text End If Text = [TEXT1] Fund = InStr(Text, "Ø") If Fund > 0 Then Text = Left(Text, Fund - 1) & "Oe" & Mid(Text, Fund + 1) [TEXT1] = Text End If Text = [TEXT1] Fund = InStr(Text, "Å") If Fund > 0 Then Text = Left(Text, Fund - 1) & "Aa" & Mid(Text, Fund + 1) [TEXT1] = Text End If
Text = [TEXT2] Fund = InStr(Text, "æ") If Fund > 0 Then Text = Left(Text, Fund - 1) & "ae" & Mid(Text, Fund + 1) [TEXT2] = Text End If Text = [TEXT2] Fund = InStr(Text, "ø") If Fund > 0 Then Text = Left(Text, Fund - 1) & "oe" & Mid(Text, Fund + 1) [TEXT2] = Text End If Text = [TEXT2] Fund = InStr(Text, "å") If Fund > 0 Then Text = Left(Text, Fund - 1) & "aa" & Mid(Text, Fund + 1) [TEXT2] = Text End If Text = [TEXT2] Fund = InStr(Text, "Æ") If Fund > 0 Then Text = Left(Text, Fund - 1) & "Ae" & Mid(Text, Fund + 1) [TEXT2] = Text End If Text = [TEXT2] Fund = InStr(Text, "Ø") If Fund > 0 Then Text = Left(Text, Fund - 1) & "Oe" & Mid(Text, Fund + 1) [TEXT2] = Text End If Text = [TEXT2] Fund = InStr(Text, "Å") If Fund > 0 Then Text = Left(Text, Fund - 1) & "Aa" & Mid(Text, Fund + 1) [TEXT2] = Text End If
Alt i alt kommer speed ferret tættest på at virke efter hensigten, dog har den nogle problemer, kig f.eks. her: http://www.eksperten.dk/spm/405535 Hvad der er galt ved jeg dog ikke.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.