Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 62800 Skopiuj do schowka Problem z operatorem LIKE w zapytaniu SQL
Autor Wiadomość
cool_aikon
Fan Excela


Posty: 79
Wysłany: 08-10-2018, 14:08   Problem z operatorem LIKE w zapytaniu SQL

Koledzy bazę mam programie ACCESS 2010 z jeden z tabel TEST2 potrzebuję pobrać z kolumny Imie wszystkie imiona zaczynające się na literę "A". Tu pojawia się problem. Jak zapytanie zadaję w programie access to dostaję wszystkie wyniki zgodnie z zapytaniem:
Kod:

SELECT Imie FROM TEST2 WHERE Imie LIKE 'a*'

Jak wiadomo znak (* - gwiazdka zastępuje dowolny znak i ilość znaków). Po przeniesieniu zapytania do Excela do VBA nie pokazuje mi żadnego wyniku. Wstawienie znaku gwiazdki zarówno w polu UF jak i na sztywno w VBA nie pomaga. Próbowałem też zamienić * na % ale to tez nie pomogło bo taka informację znalazłem w necie. Co robię źle?

Excel-Like.zip
Pobierz Plik ściągnięto 21 raz(y) 50.01 KB

ID posta: 354094 Skopiuj do schowka
 
 
kulasart
[Usunięty]

Wysłany: 08-10-2018, 14:44   

Przy takim zapisie wszystko działa jak należy:
Kod:
ZapSQL = "SELECT Imie"
ZapSQL = ZapSQL & " FROM [TEST2]"
ZapSQL = ZapSQL & " WHERE Imie LIKE '%" & TB_Szukaj.Value & "%'"
ZapSQL = ZapSQL & " ORDER BY Imie ASC"


Choć osobiście zamiast
Kod:
TB_Szukaj.Value
użyłbym
Kod:
trim(TB_Szukaj.Text)
ID posta: 354095 Skopiuj do schowka
 
 
cool_aikon
Fan Excela


Posty: 79
Wysłany: 08-10-2018, 14:57   

Dzięki za pomoc :).

A tak przy okazji a czemu sugerujesz użyć:
Kod:
trim(TB_Szukaj.Text)
ID posta: 354096 Skopiuj do schowka
 
 
ąćęłńóś
ExcelSpec


Pomógł: 161 razy
Posty: 727
Wysłany: 08-10-2018, 15:41   

Nie ufa ci ... :-> ... to dlatego ... :->

ps.:
Jak nie działa:
Kod:
ZapSQL = ZapSQL & " WHERE Imie LIKE '" & TB_Szukaj.Value & "%'"

to spróbuj może:
Kod:
ZapSQL = ZapSQL & " WHERE Imie LIKE " & Chr(96) & TB_Szukaj.Value & "%" & Chr(96)
ID posta: 354099 Skopiuj do schowka
 
 
kulasart
[Usunięty]

Wysłany: 08-10-2018, 16:20   

W przypadku kontrolki typu Textbox nie ma większego znaczenia czy użyjemy właściwości Text, czy Value, ponieważ obie zwracają dokładnie ten sam typ i tą samą wartość.

Co do użycia funkcji trim, to kolega ąćęłńóś ma absolutną rację - nie ufam użytkownikom i dlatego każdą wartość jaką wprowadzają trimuje (usuwam zbędne puste znaki na początku i na końcu) i staram się dodatkowo sprowadzić je do właściwego typu (używając CDbl, CDate itp). W tym konkretnym przypadku sam trim wystarczy.
ID posta: 354102 Skopiuj do schowka
 
 
szuszana 
ExcelSpec


Pomogła: 169 razy
Posty: 591
Wysłany: 08-10-2018, 19:28   

Cytat:
Jak wiadomo znak (* - gwiazdka zastępuje dowolny znak i ilość znaków).
W ADO to %.
Oraz w zdarzeniu UserForm_Initialize użyj może Me.TB_Szukaj.SetFocus.
---------------------------
kulasart napisał:
Cytat:
Przy takim zapisie wszystko działa jak należy....
ZapSQL = ZapSQL & " WHERE Imie LIKE '%" & TB_Szukaj.Value & "%'"
a pytanie brzmiało:
Cytat:
imiona zaczynające się na literę…
a więc to co napisał ąćęłńóś jest ok.
Cytat:
ZapSQL = ZapSQL & " WHERE Imie LIKE '" & TB_Szukaj.Value & "%'"
ID posta: 354113 Skopiuj do schowka
 
 
cool_aikon
Fan Excela


Posty: 79
Wysłany: 12-10-2018, 22:20   

Dziękuję koleżanki i koledzy za wyczerpującą odpowiedź.
ID posta: 354469 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe