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 738 7
  • #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 7
  • #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