Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Access - pole listy wielokrotny wybór

Hauzer1 24 Lut 2018 15:32 987 11
  • #1 24 Lut 2018 15:32
    Hauzer1
    Poziom 7  

    Witam,
    wiem, że temat bardzo stary ale nic podobnego nie mogłem znaleźć.
    Mam podobny problem jak wyżej opisany.

    W formularzu mam pole listy wielokrotnego wyboru z kolumnami od 1 do 8 (dane pobierane z kwerendy "X") oraz 5 pól tekstowych niezwiązanych.

    Chciałbym po wyborze jednego lub kilku wierszy z listy zapisać w tabeli "Y" kolumny 1 do 8 i do każdego wiersza przypisać te same dane z pól tekstowych.

    Udało mi się zrobić tak, że zapisuje mi tyle wierszy ile wybieram z listy + pola niezwiązane ale powtarza dane kolumn 1 do 8 z ostatniego zaznaczenia.

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    Moderowany przez adamas_nt:

    Wydzielono z Link

    0 11
  • #2 19 Mar 2018 14:27
    Hauzer1
    Poziom 7  

    Widać po ilości odpowiedzi temat łatwy i przyjemny :D

    Poniżej to jak sobie z tym poradziłem - może się komuś przyda.

    W tabeli (źródło dla kwerendy "X") dodałem pole z niepowtarzalnym indeksem dla każdego wiersza.
    1 wiersz listy wielokrotnego wyboru = indeks
    + 5pól niezwiązanych

    Część kodu

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Teraz zapisuje tak jak chciałem ale mam jeszcze jeden problem. Jak odświeżyć listę tak żeby niebyło aktywnego zaznaczenia (lista odświeża się o nowe dane zgodne z kwerendą ale zostaje to właśnie zaznaczenie) - mam nadzieję że mówię z sensem :D :D :D

    0
  • #3 19 Mar 2018 14:44
    JRV
    Specjalista - VBA, Excel

    Me.Lista39.ListIndex = -1

    0
  • #4 20 Mar 2018 11:06
    Hauzer1
    Poziom 7  

    Dostaję błąd: :(

    Run-Time error "7777"
    Właściwość ListIndeks została użyta niepoprawnie

    "Wchodzi" bez błędu jak:

    Me.Lista39.SetFocus
    Me.Lista39.ListIndeks = -1

    Ale :D brak zakładanego efektu - zaznaczenie zostaje.

    0
  • #5 20 Mar 2018 12:20
    Andie
    Poziom 20  

    Hauzer1 napisał:
    Ale brak zakładanego efektu - zaznaczenie zostaje.

    Myślę, że to nie jest zaznaczenie (chociaż tak może wyglądać) tylko efekt uzyskanego przez formant listy fokusu.
    Może po prostu ustaw fokus na innym formancie.


    adnie

    0
  • #6 20 Mar 2018 15:14
    Hauzer1
    Poziom 7  

    Nie działa.

    W przypadku listy bez wielokrotnego wyboru ze źródłem danych Lista wartości wystarczyło jak zrobiłem tak Me.ListaX = ""

    Może opiszę dokładniej skąd są pobierane dane do listy wielokrotnego wyboru.

    Na formularzu "F" mamy listę "X" oraz pole "Y"
    Źródłem danych listy jest kwerenda "Z" która ma kilka kolumn a jedna znich ma kryterium pola "Y"

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    Pole "Y" ma ustawione odświeżanie po aktualizacji
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Po wpisaniu w pole Y odpowiednich danych uzupełnia się lista "X" zaznaczam wybrane wiersze z listy dopisuję pozostałe wartości (opisane wyżej w pierwszym i drugim poście) klikam zapisz i BUM :D
    Zapisuje tak jak chciałem przy okazji taki zapis zmienia dane na liście ale chciałbym aby to "czarne zaznaczenie" znikało. Przeszkadza w dalszej pracy na tych samych danych. Ręcznie mogę raz jeszcze wpisać w pole "Y" kryterium i wyzeruje mi się lista ale to działanie głupiego :D
    Samo Requery tylko odświeża listę (dane).

    0
  • Pomocny post
    #7 20 Mar 2018 22:19
    Andie
    Poziom 20  

    Do procedury podpiętej pod "zapisz" spróbuj dodać na końcu:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    andie

    0
  • #8 21 Mar 2018 07:54
    Hauzer1
    Poziom 7  

    Działa :)
    bardzo dziękuje

    0
  • #9 24 Wrz 2018 13:27
    Hauzer1
    Poziom 7  

    Witam,
    odświeżam temat ponieważ następny mój problem dotyczy pola wielokrotnego wyboru.

    Za pomocą takiej listy chciałbym filtrować dane kwerendy/formularza.
    Przy liście z pojedynczym wyborem nie mam problemu - dodaję do kryterium, w kwerendzie, ścieżkę do listy + Requery po aktualizacji.

    Ten sam sposób nie działa dla wielokrotnego wyboru.

    0
  • #10 24 Wrz 2018 22:15
    Andie
    Poziom 20  

    Hauzer1 napisał:
    dodaję do kryterium, w kwerendzie, ścieżkę do listy

    C o to znaczy 'ścieżkę do listy'? Pokaż kod vba/sql, który to obsługuje.

    andie

    0
  • #11 25 Wrz 2018 10:22
    Hauzer1
    Poziom 7  

    Może źle się wyraziłem poniżej jak wygląda ta kwerenda w SQL

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0
  • #12 25 Wrz 2018 18:06
    Andie
    Poziom 20  

    Trudno jest w standardowej kwerendzie accessowej zastosować kilka kryteriów z listy wielokrotnego wyboru - nie można do nich odwołać się bezpośrednio w kwerendzie.

    Aby zastosować takie kryteria, musisz je najpierw zapisać w formie odpowiedniego ciągu znaków w jakiejś zmiennej VBA/tablicy (za pomocą pętli), a następnie – w zależności od tego, do czego kwerenda ma być zastosowana, albo wykonać ją z poziomu VBA albo - jeśli ma być zastosowana do wyświetlenia danych w formularzu - użyć innych sposobów, np. właściwości formularza Filter.

    Musisz napisać coś więcej, a najlepiej załączyć plik z przykładowym formularzem i danymi jakie mają zostać obsłużone.



    andie

    0