Avatar billede puppetmaster Nybegynder
22. september 2003 - 15:23 Der 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?
Avatar billede medions Nybegynder
22. september 2003 - 15:25 #1
Replace(strVariabel, "æ", "oe")

//>Rune
Avatar billede puppetmaster Nybegynder
22. september 2003 - 15:28 #2
medions, det var LIDT billigt sluppet, der mangler noget med formularer, tabeller, tabelfelter, rapporter, kontrollers navne osv..... ;)
Avatar billede fynbohans Nybegynder
22. september 2003 - 19:46 #3
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.
23. september 2003 - 11:09 #4
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.
23. september 2003 - 11:13 #5
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.
Avatar billede hugopedersen Nybegynder
23. september 2003 - 21:07 #6
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.
Avatar billede fynbohans Nybegynder
23. september 2003 - 21:17 #7
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.
Avatar billede fynbohans Nybegynder
23. september 2003 - 21:26 #8
Hvad moduler angår kan tegnene i Moduler erstattes globalt i VBA med
Replace/Current Project.
Avatar billede hugopedersen Nybegynder
24. september 2003 - 07:01 #9
'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.
Avatar billede fynbohans Nybegynder
24. september 2003 - 10:20 #10
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
       
        DoCmd.GoToRecord , , acLast
        SidsteNr = [ID]
        DoCmd.GoToRecord , , acFirst
               
        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
           
'          --------- osv ------------------------------------------
           
            If [ID] = SidsteNr Then Exit Do
            DoCmd.GoToRecord , , acNext
           
        Loop
        DoCmd.Close
       
     
End Sub
Avatar billede puppetmaster Nybegynder
26. september 2003 - 08:44 #11
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester