Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[EXCEL,VBA] Sortowanie mysql

-Tomi- 17 Jul 2015 23:56 1059 12
  • #1
    -Tomi-
    Level 13  
    Witam

    Tym razem mam problem z sortowaniem bazy msql wywołuję poniższy kod i nic się nie dzieje, proszę o pomoc co jest nie tak.

    Code: vbnet
    Log in, to see the code
    [/code]
  • #2
    rufek90
    Level 24  
    Puszczałeś to zapytanie do bazy? Temat sugeruje, że masz problem z sortowaniem, więc rozumiem, że nieposortowane dane udaje ci się uzyskać?
    Jak dla mnie, zapytanie jest poprawne składniowo, ale nie widzę, abyś coś dalej robił z wynikiem.

    Jeżeli jednak masz problem nie z sortowaniem, a z obsługą pobranych danych, to spróbuj tak (wygooglane, ale wygląda rozsądnie)
    
    Sheets("sheet_name").Cells(1, 1).CopyFromRecordset rs
    
  • #3
    User removed account
    Level 1  
  • #4
    -Tomi-
    Level 13  
    Wszystko mi działa, ale to sortowanie niestety nie. Mam połączenie z bazą dodaje usuwam rekordy i jest ok. Dane wyświetlam w listbox. chodzi mi dokładnie o to żeby posortować dane wg 1 kolumny czyli wg nazwy (alfabetycznie) i wyświetlić ponownie listbox.
  • Helpful post
    #5
    User removed account
    Level 1  
  • Helpful post
    #6
    -psiak-
    Level 32  
    -Tomi- wrote:
    Wszystko mi działa, ale to sortowanie niestety nie.
    Wg mnie wygląda to w sposób następujący: napisałeś w zeszycie: "Mam cztery nogi." - i skarżysz się na forum że wciąż masz tylko dwie.

    Z tego co pokazałeś to może być tylko dwie opcji:
    • zapytanie ma się nijak do tego co wyświetlasz.
    • dostajesz posortowane, tylko że ustawiłeś niewłaściwe kodowanie bazy/tablicy/pola oraz sprawdzasz na niewłaściwym zakresie (np collate=binary zaś sprawdzasz np tylko: 'Ą', 'B')

    101pawel wrote:
    Spróbuj to wykonać bez apostrofów dla sortowanego pola. Potem - jeśli dalej nic, usuń słowo kluczowe ASC.
    I koniecznie sprawdź, czy pole nazwa rzeczywiście zapisałeś jako nazwa.
    Gdyby było właśnie to co podejrzewasz to efektem powinno być brak czegokolwiek przy wyświetlaniu, nie zaś inna kolejność rekordów.
  • #7
    -Tomi-
    Level 13  
    To może rozwinę swój kod i pokaże co chcę uzyskać i co mi nie wychodzi.
    Code: vbnet
    Log in, to see the code


    Zrobiłem coś takiego i dalej nic, a co gorsza nawet nie ma żadnego błędu a baza msql dalej nie posortowana. Proszę dodarcie coś mądrego co tu może być nie tak. Połączenie z bazą działa na 100% bo dodaję i usuwam rekordy
  • Helpful post
    #8
    marcinj12
    Level 40  
    Próbowałeś, jak kolega sugerował, usunąć apostrofy z zapytania?
  • #9
    -Tomi-
    Level 13  
    tak próbowałem bez apostrofów oraz bez sposobu sortowania ASC
  • Helpful post
    #10
    User removed account
    Level 1  
  • Helpful post
    #11
    PRL
    Level 40  
    Cudów nie ma.

    komenda_SQL = "SELECT * FROM Test.Baza ORDER BY Nazwa ASC"

    W Akcesie stosuję:

    Code: vbscript
    Log in, to see the code




    Myślę, że w Excelu też się da.
  • Helpful post
    #12
    marcinj12
    Level 40  
    Najwyraźniej nie jest to nic ważnego, gdyż kolega zignorował moją propozycję zdalnej pomocy na PW...

    Zaś użycie apostrofów w nazwie pola jest ewidentnym błędem, gdyż MySQL traktuje to wtedy jako wartość string i "sortuje" po niej. Zapytanie wykona się pozornie bez błędu, ale wynik będzie nieposortowany.
    Prawidłowym jest brak apostrofów przy nazwie pola bądź odwrócone apostrofy.

    Sądząc po minusie przy tej sugestii - kolega jednak wie lepiej, więc powodzenia w dalszym rozwiązywaniu "problemu" :)
  • #13
    -Tomi-
    Level 13  
    Dzięki wszystkim za pomoc. Nie odpisywałem bo po za przyjemnościami istnieje jeszcze praca, która niestety pochłania większość mojego czasu. Oczywiści błąd leżał po mojej stronie i to przez te apostrofy, nie wiem jakim cudem usunąłem tylko jeden:) ale czasami tak bywa jak człowiek jest zakręcony. Jeszcze raz dziękuję za pomoc i zaangażowanie.