ločevanje velikih in malih črk v Access 2007
ločevanje velikih in malih črk v Access 2007
V Access 2007 imam bazo podatkov v tabeli, ki vsebuje npr. 3 stolpce. V enemu od stolpcev je podatek o številki dokumenta (stolpec je formatiran v text obliki), ki je največkrat nekaj mestna številka npr. 1234567, včasih pa vsebuje tudi črke npr. 12345c9 ali 12345C9.
Ko hočem izdelati poizvedbo (query) v kateri bi seštel vrednosti v okviru ene številke dokumenta mi Access ne prepozna razliko med velikimi in malimi črkami v številki dokumenta.
npr. 123m je enako 123M. Meni pa pomeni to dve različni številki dokumenta. Primer:
št_dokumenta ključ vrednost v eur
123m 978/0 10,00
123M 978/0 20,00
Pravilen rezultat bi bil 123m = 10,00 EUR
123M = 20,00 EUR
Dobim pa seštevek obeh št.dokumenta 123m = 30,00 EUR
Kako bi prepričal Access, da male in velike črke v številki dokumenta pomenijo različno vsebino celice ??
Hvala za pomoč in lep pozdrav
Slavko
Ko hočem izdelati poizvedbo (query) v kateri bi seštel vrednosti v okviru ene številke dokumenta mi Access ne prepozna razliko med velikimi in malimi črkami v številki dokumenta.
npr. 123m je enako 123M. Meni pa pomeni to dve različni številki dokumenta. Primer:
št_dokumenta ključ vrednost v eur
123m 978/0 10,00
123M 978/0 20,00
Pravilen rezultat bi bil 123m = 10,00 EUR
123M = 20,00 EUR
Dobim pa seštevek obeh št.dokumenta 123m = 30,00 EUR
Kako bi prepričal Access, da male in velike črke v številki dokumenta pomenijo različno vsebino celice ??
Hvala za pomoč in lep pozdrav
Slavko
Re: ločevanje velikih in malih črk v Access 2007
Pozdravljeni,
Ja, Access je ena takšna čudna baza ki se je jez izogibam kot hudič križa... A to niti ni pomembno
Za rešitev v Accessu morate uporabiti funkcijo StrComp, torej:
Ja, Access je ena takšna čudna baza ki se je jez izogibam kot hudič križa... A to niti ni pomembno
Za rešitev v Accessu morate uporabiti funkcijo StrComp, torej:
Koda: Izberi vse
...where StrComp(Kljuc, "123m", 0) = 0
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: ločevanje velikih in malih črk v Access 2007
Hvala za odgovor toda jaz imam v bazi preko 10000 različnih številk dokumentov, ki vsebujejo male črke. A bi se dalo s poizvedbo določiti kriterij s katerim bi izbral vse številke dokumentov, ki vsebujejo male črke na kateremkoli mestu v tej celici. Številke dokumenta so približno take: 123n, 458/mN, 7775555n78 ... tega je ogromno število v tem stolpcu. Izbrane številke dokumenta z malimi črkami bi potem izločil v posebno tabelo in bi jih ločeno obravnaval od ostalih številk, ki so OK in ne vsebujejo malih črk.
Re: ločevanje velikih in malih črk v Access 2007
V originalnem vprašanju niste spraševali tega, temveč ste spraševali kako doseči iskanje neke konkretne šifre. To kar sprašujete sedaj pa je nekaj čisto drugega. Najti želite vse zapise, ki vsebujejo majhne črke.
To boste dosegli z uporabo operatorja like:
To boste dosegli z uporabo operatorja like:
Koda: Izberi vse
... where Kljuc like '*[a-z]*'
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: ločevanje velikih in malih črk v Access 2007
Ja sedaj sicer najde vse zapise, ki vsebujejo črke, vendar tako velike kot male. Jaz pa hočem, da mi izloči samo tiste z malimi črkami. npr. 458n NE pa tudi 458N.
Re: ločevanje velikih in malih črk v Access 2007
Kot rečeno Accessa ne uporabljam zato tega nisem preizkušal.
Access je očitno "case insensitive" baza in zato vašega problema v njej ne boste mogli preprosto rešiti. Najhitreje in najlažje je tako, da dodate polje z numeričnim ključem (id), in nato v Excel izvozite polji ID in vaš ključ, ter v Excelu pogledate kateri zapisi vam nagajajo ter jih potem preko ID polja uredite
Access je očitno "case insensitive" baza in zato vašega problema v njej ne boste mogli preprosto rešiti. Najhitreje in najlažje je tako, da dodate polje z numeričnim ključem (id), in nato v Excel izvozite polji ID in vaš ključ, ter v Excelu pogledate kateri zapisi vam nagajajo ter jih potem preko ID polja uredite
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: ločevanje velikih in malih črk v Access 2007
Pred časom sem se malo igral z Access-om in sem spet malo pobrskal po Help-u.
Mislim, da rabiš tole:
V Help-u za Access poglej navodilo "Razvrščanje zapisov po vrstnem redu, ki razlikuje velike in male črke".
V opisu je opisana funkcija StrToHex, ki jo lahko enostavno skopiraš v svoj projekt.
Primer opisuje, kako jo uporabiš v poizvedbi za "ORDERR BY".
Uporabis jo seveda lahko tudi pri "GROUP BY".
Na enem svojem testu sem jo tudi preveril.
Tole je funkcija:
Tole pa uporaba v poizvedbi:
Lep pozdrav,
Drago
Mislim, da rabiš tole:
V Help-u za Access poglej navodilo "Razvrščanje zapisov po vrstnem redu, ki razlikuje velike in male črke".
V opisu je opisana funkcija StrToHex, ki jo lahko enostavno skopiraš v svoj projekt.
Primer opisuje, kako jo uporabiš v poizvedbi za "ORDERR BY".
Uporabis jo seveda lahko tudi pri "GROUP BY".
Na enem svojem testu sem jo tudi preveril.
Tole je funkcija:
Koda: Izberi vse
Option Compare Database
Option Explicit
Function StrToHex(S As Variant) As Variant
'
' Converts a string to a series of hexadecimal digits.
' For example, StrToHex(Chr(9) & "A~") returns 09417E.
'
Dim Temp As String, I As Integer
If VarType(S) <> 8 Then
StrToHex = S
Else
Temp = ""
For I = 1 To Len(S)
Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00")
Next I
StrToHex = Temp
End If
End Function
Koda: Izberi vse
SELECT Promet.ID, Promet.Datum, Promet.Odliv, Promet.Kdo, StrToHex([Promet.kdo]) AS Expr1
FROM Promet
ORDER BY StrToHex([Promet.kdo]);
Lep pozdrav,
Drago
Re: ločevanje velikih in malih črk v Access 2007
Ja, sem se tudi spomnil, da obstaja način, kjer pa č zaukažete, naj vam Acces izpiše vse zapise, kjer vrednost NI ENAKA vrednosti z velikimi črkami... torej:
Koda: Izberi vse
... where UCase(kljuc) <> kljuc
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: ločevanje velikih in malih črk v Access 2007
Hvala Dragotu in Matjažu, zgornji nasvet od Dragota deluje sem ga preizkusil. Sicer imam ogromno bazo podatkov vendar jih sedaj s poizvedbo lepo ločuje v okviru malih in velikih črk, ko sem vpisal zgornjo funkcijo ... bom pa preizkusil še tale nasvet od Matjaža. Še enkrat hvala obema, saj tole bazo urejam za službo in je pravilen rezultat še kako potreben.