Access Űrlapok kombinál lista több oszlopba való keresés.
2022-06-24T11:02:26+02:00
2022-07-01T15:22:34+02:00
2022-08-08T08:00:29+02:00
neur0nic
Sziasztok!

Az lenne a kérdésem, hogy csináltam egy Űrlapot aminél van egy kombinált listám (tábla/lekérdezéssel).
A lekérdezésem a következő:
SELECT [Adatok tisztitva].Megnevezes, [Adatok tisztitva].Kod, [Brutto_suly] & " KG" AS Bruttosuly FROM [Adatok tisztitva] GROUP BY [Adatok tisztitva].Megnevezes, [Adatok tisztitva].Kod, [Brutto_suly] & " KG";
 Űrlapon mikor beírom a megnevezést pl: MM7 akkor azt a nevet dobja fel ahol megtalálja az első MM7 -el kezdőt és utána listába nem a többi találalot mutatja, ahol benne van a szóban az MM7 kifejezés, hanem a sorban követkkező megnevezést. Ezt hogyan tudom megoldani, hogy ne így legyen.

Remélem jól körbe írtam a problémámat.
Köszönöm, hogy segítséget nyújtotok ebben is.
Mutasd a teljes hozzászólást!
Szia!

Az access combobox elég alap funciókat ismer csak.
Ha a combobox listaelemeit akarod szűrni akkor ezt minden egyes karakter leütés után meg kellene tenned.

Olvasnivaló kezdésnek:

Solved - Search as you type with in Combobox / instant filter combobox itself
Mutasd a teljes hozzászólást!

  • Ezer éve nem foglalkoztam ilyennel. De ha jól látom a lista tartalmát nem is szűröd a beírt karakterekre. Ha ez magától nem történik meg akkor neked kell onChange vagy vagy vmi hasonló eseményre makróban újratölteni a listát.
    Mutasd a teljes hozzászólást!
  • Köszönöm a válaszod!

    Utána néztem annak amit írtál, és ha jól látom és értelmezem ez arra van, ha módosul az adott mező vagy adat, akkor használja ezt az OnChange -t és valamit csinál.

    Szerintem rosszul fogalmaztam meg a problémámat, de ez az OnChange nem egy haszontalan dolog, lehet tudom használni. Szóval működik a keresés, csak nem úgy ahogy én szeretném. Állítottam be where feltételt like szűrésel, de ügye azzal csak azt érem el, hogy az adataimat leszűrjem, és csak azokból az eredményekből tudjon keresni. Viszont én azt szeretném, hogy amit beírok az űrlapon szót, vagy kifejezést, azokat listázza ki, amikben megtalálható az adott szó, a többit ne jelenítse meg. pl ha beírom, hogy "eper" akkor ezek  legyenek a találatok: eper, eperjoghurt, joghurteper, turoeper, jelenleg nem így működik, az alap keresése hogy beírom "eper" így adja ki a találatott: eper, erdeigyümölcs, erdélyitök, joghurteper. Szóval a táblában lévő első találatot, és utána a következő mezőben lévő adatott, és így tovább. Képet csatoltam ami a problémám.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia!

    Az access combobox elég alap funciókat ismer csak.
    Ha a combobox listaelemeit akarod szűrni akkor ezt minden egyes karakter leütés után meg kellene tenned.

    Olvasnivaló kezdésnek:

    Solved - Search as you type with in Combobox / instant filter combobox itself
    Mutasd a teljes hozzászólást!
  • Köszönöm a segítséget!

    Ez lesz a jó megoldás első lépésben, csak nem tudtam még helyesen alkalmazni az én adataimmal.
    Lehet nem elég ide az SQL ide VBA is kell. Egyenlőre nem látom át, ezt a VBA -s részt.  Viszont a megoldás náluk, működik. Én ilyet kerestem, csak azt hittem van valmi kicsit könyebb. :)
    Köszönöm a segítséget!
    Mutasd a teljes hozzászólást!
  • Köszi a  segítséget!

    Félig megoldottam a problémám. Úgye az első javaslatoddal: 
    SELECT [Adatok tisztitva].Megnevezes, [Adatok tisztitva].Forgalmazoi_kod, [Adatok tisztitva].Mertekegyseg, [Adatok tisztitva].Kod FROM [Adatok tisztitva] WHERE [Adatok tisztitva].Megnevezes Like "*" & [Gyartott termekek].[Megnevezes].[Text] & "*" ORDER BY [Adatok tisztitva].Megnevezes;
    Most jönne a második része, hogy eseménynél módosításra kérje le a kombinált mezőt.
    Itt akadtam még el. Nem tudom erre, is van valami linked, mert nem tudom hogy lehet meghívni.
    Mutasd a teljes hozzászólást!
  • Szia!

    A change event-et kell használnod, ami benne van a fenti linkben is,.
    Nem te hívod meg, hanem a rendszer, mikor változik a combobox-ba begépelt  érték.

    A combobox rekordforrásának adsz új értéket ennek az eseménynek a lekezelésében.
    Az eseményben mint VBA kódban bármikor lekérdehzeted bárminek az értékét.
    Mutasd a teljes hozzászólást!
  • Köszönöm a segítséget elfogadom a választ, mert ott működik az ő adataival és úgy ahogy én akartam nálam. Sajnos Én nem tudom beilleszteni úgy magamhoz az ő kodjaikat, hogy működjön.
    Mutasd a teljes hozzászólást!
  • Szia!

    Ez a combobox eventkezelője:

    Sub Article_Change()
    Ez a másik pedig egy sima sub a form-on vagy global modulban.

    FilterComboAsYouType
    Melyik részével van gondod?

    Az eventnél 3 paraméterrel meghívja a második sub-ot.
    1-Combobox, 2-alap SQL, 3-szűrő mező neve

    az alap SQL-hez ő adja hozzá a WHERE-t a kódból.

    Annyi hibát látok még benne hogy a sub kódban nem a kapott változót használja hanem 

    az Article nevű combobox-ot.

    Ez a sub-ban át kell írni combo -ra ami a sub eslő sorában is látszik.

    A combobox nevét az eventkezelőben kell csak használní a sub meghívásakor.
    Mutasd a teljes hozzászólást!
  • Szia!

    Én is átírtam a nevet már Article -re és úgy csináltam meg a Eventett hozzá ami így néz ki:
    Private Sub Article_Change()
    FilterComboAsYouType Me.Article, "SELECT * FROM [Adatok tisztitva]", "Megnevezes"
    End Sub

    "Adatok tisztitva" ez a táblám ahol az adatok megvannak. A "Megnevezés" az adott oszlop. 

    A FilterComboAsYouType class modulnak is átneveztem. és beíllesztettem ezt:
    Public Sub FilterComboAsYouType(combo As ComboBox, defaultSQL As String, lookupField As String) Dim strSQL As String If Len(Article.Text) > 0 Then strSQL = defaultSQL & " WHERE " & lookupField & " LIKE '*" & Article.Text & "*'" Else strSQL = defaultSQL End If Article.RowSource = strSQL Article.Dropdown End Sub
    Amikor elinditom, hogy kripóbáljam ezt a hibát kapom.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia!

    Az első:

    FilterComboAsYouType class modul

    Itt ne Article-t használj hanem combo-t

    Ahol jelenleg Article.valami van azt cseréld le combo.valami-re


    A másik probléma, amiről képet csatoltál: ne class modul-t hanem sima globális modult-t adj hozzá.
    Az sima Module_valami néven fog megjeleni. A class modul másra való.
    Vagy ha máshonnan nem akarod használni akkor a from kódjába is teheted ezt a sub-ot.
    Mutasd a teljes hozzászólást!
  • Itt tartok nagyon sokat segítesz, de nagyon kezdő vagyok és ez csak az első lépés. Köszönöm a sok türelmedet. 
    Képen felraktam a mostani állapotot és még alá, hogy hogy nézne ki az én űrlapom, hátha látod mit rontok el még. 
    Működik köszönöm. :D Egy hibát csináltam így de megy (Hiba: nem  nevet jelenítí meg de arra keres rá). Nagyon hálás vagyok neked! Sok sikert mindenhez, nagyon korrekt ember vagy! :)
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia!

    Comboboxba a lekérdezésnél ne  legyen select *
    Felesleges két mezőnél több.

    Az egyik mező pl az ID vagy bármi amit kulcs mezőként használsz.
    A másik amit szövegesen  szeretnél megjeleníteni.
    Több mezőt ne is tegyél bele a comboboxba.
    Mutasd a teljes hozzászólást!
abcd