Hallo,
Ik moet voor m'n werk een tijdelijke oplossing uitzoeken met Access, totdat onze 'strategic solution' in orde is.
De data komt enerzijds van een MSM database en anderzijds van een bestand die klanten ons leveren. Die file moet gematched worden met met hetgeen uit MSM komt.
Nu zou ik alle accenten eruit moeten goeien. Dat lukt me met dit VBA script:
Nu werkt dit perfect in deze query:
Als één van die velden leeg is, komt er #Error tevoorschijn ipv gewoon leeg te blijven.
Test inbouwen zoals if(not isNull(S)) then ... helpen niet.
Enig idee hoe dat moet ?
Ik ben nu niet bepaald een VB programmeur omdat ik er nooit veel interesse in dat taaltje heb gehad.
Ik moet voor m'n werk een tijdelijke oplossing uitzoeken met Access, totdat onze 'strategic solution' in orde is.
De data komt enerzijds van een MSM database en anderzijds van een bestand die klanten ons leveren. Die file moet gematched worden met met hetgeen uit MSM komt.
Nu zou ik alle accenten eruit moeten goeien. Dat lukt me met dit VBA script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Option Compare Database
Public Function RemoveAccentUCase(S As String) As String
Const O As String = "àâäèéêëïîôöüùûç" ' characters to replace
Const N As String = "aaaeeeeiioouuuc" ' remplacement characters
Dim I As Byte
If (Len(S) >= 1) Then
For I = 1 To Len(O)
Let S = Replace(LCase$(S), Mid$(O, I, 1), Mid$(N, I, 1), , , vbTextCompare)
Next I
End If
RemoveAccentUCase = UCase(S)
End Function |
Nu werkt dit perfect in deze query:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| SELECT Accounts.[Record ID], Accounts.[Msm Estab Key], Accounts.[Adb Acct Urn], Accounts.[Company Id], Accounts.[Addr Type], Accounts.[Estab Name], RemoveAccentUCase(Accounts![Company Name Upper]) AS [Company Name Upper], RemoveAccentUCase(Accounts.[Company Name 15]) AS [Company Name 15], RemoveAccentUCase(Accounts.[Company Name 10]) AS [Company Name 10], RemoveAccentUCase(Accounts.[Company Name 5]) AS [Company Name 5], Accounts.Addr1, Accounts.Addr2, Accounts.Addr3, RemoveAccentUCase(Accounts.[Address Upper]) AS [Address Upper], RemoveAccentUCase(Accounts.[Address 15]) AS [Address 15], RemoveAccentUCase(Accounts.[Address 10]) AS [Address 10], RemoveAccentUCase(Accounts.[Address 5]) AS [Address 5], RemoveAccentUCase(Accounts.City) AS City, Accounts.Zipcode, Accounts.[Phone Num OK], Accounts.[Fax Num OK] FROM Accounts; |
Als één van die velden leeg is, komt er #Error tevoorschijn ipv gewoon leeg te blijven.
Test inbouwen zoals if(not isNull(S)) then ... helpen niet.
Enig idee hoe dat moet ?
Ik ben nu niet bepaald een VB programmeur omdat ik er nooit veel interesse in dat taaltje heb gehad.
[ Voor 2% gewijzigd door Verwijderd op 26-08-2004 16:33 . Reden: Layout aangepast ]