Telefonszámunk: 1-472-0679

[Resolved] Lekérdezés paraméterezése

Kezdőlap Fórumok Excel programozás [Resolved] Lekérdezés paraméterezése

Topic Resolution: Resolved

Ennek a témakörnek tartalma 6 hozzászólás, 3 résztvevő. Utolsó frissítés:  horvimi 1 hét, 2 napja telt el a bejegyzés óta.

7 bejegyzés megtekintése - 1-7 / 7
  • Szerző
    Bejegyzés
  • #5228

    Vbacube
    Résztvevő

    Szia Imi,
    egy SQL lekérdezést szeretnék készíteni, ami a “Where” feltételt egy Excel-tábla lista értékeiből (jelen esetben: ‘V0529′,’V1085’), paraméterként (?) veszi, valahogy így:
    SELECT FIRMA.FIRMANR FROM INFOR.RELFIRMA FIRMA WHERE (FIRMA.FIRMANR In (?))
    A lista valójában ennél sokkal hosszabb, és az értékei gyakran változnak, a frissítéseket pedig változásakor egy eseményvezérelt makró végezné.
    Arra gondoltam, hogy az Excelben egy cellában szövegként összefűzöm a lista elemeit, és amikor a query futtatáskor bekéri a paraméter értékét, akkor hivatkozásként megadom az adott cellát.
    A dolog sajnos nem tűnik ilyen egyszerűnek, ugyanis a következő történik:
    1. Ha a ? helyett egyszerűen felsorolom az értékeket így: WHERE (FIRMA.FIRMANR In (‘V0529′,’V1085’)) – akkor működik
    2. Ha lemakrózom a query készítését úgy, hogy az az adott sztringet tartalmazó cellára hivatkozik, (ld. a csatolmányban) – akkor is működik, méghozzá úgy, hogy a makró beleírja a query-be a hivatkozott cellában található értékeket.
    3. Ha viszont megírom a lekérdezést, majd a kapcsolat definíciójánál paraméterként megadom a több elemből összefűzött sztringet tartalmazó cellát, a lekérdezés lefut, de az eredménytábla üres lesz.
    Sokat játszottam már az aposztrófokkal, zárójelekkel, cellaformátumokkal, de eddig nem találtam meg a megoldást.
    Van esetleg valami tipped, hogy hol lehet a kutya elásva?
    Előre is köszönöm.
    András

    Attachments:
    You must be logged in to view attached files.
    #5233

    horvimi
    Kulcsmester

    Szia!

    Egy kicsit utánanéztem, úgy néz ki, hogy ebben a formában nem fog ez menni.
    De találtam egy fórum bejegyzést, ahol pont erről van szó, és lehet, hogy jó lesz neked.
    Van ott egy Ron Coderre nevű figura bejegyzése.

    https://www.excelforum.com/excel-general/535886-microsoft-query-parameter-is-one-of.html

    Nagyon kíváncsi vagyok.

    Imre

    #5234

    Sicamber
    Résztvevő

    Sziasztok!

    Nem nagyom vágom a fenti témát, de vba-ba ágyazott sql kifejezésbe kellett már beillesztenem változót – ott ez működött:
    strSheet = “Regeszet” ‘ – ez a beillesztendő változó
    strSql = “SELECT * FROM " & strSheet & "$ WHERE [#] <> 0″

    tehát a formula: ‘” & változó & “‘

    az egész prg az alábbi linken van a minták.zip fájl word makrójában
    http://excel-bazis.hu/forumok/topic/excelre-hivatkozo-word-korlevel-abszolut-hivatkozasanak-relativva-tetele

    … hátha segít…

    #5235

    Sicamber
    Résztvevő

    a kódot nem jól illeszti be… tehát mégegyszer:
    aposztróf(shift+1) macskaköröm & változó & macskaköröm aposztróf

    #5237

    Vbacube
    Résztvevő

    Sziasztok,

    köszönöm a tanácsokat. A makrózott változat működik, ahogy az eredeti bejegyzésben is írtam, úgyhogy, ha nem sikerül másként megoldani, akkor az marad.
    A Ron Coderre-féle bejegyzés nyomán még bajlódom egy sort a makrózatlan verzió megalkotásával, ha jutottam valamire, megírom.

    András

    #5238

    Vbacube
    Résztvevő

    Imi,
    működik! Ez a Ron tudta a trükköt, te pedig remekül kiszúrtad a fórumbejegyzést.
    A megoldás tehát ennyi:

    SELECT FIRMA.FIRMANR
    FROM INFOR.RELFIRMA FIRMA
    WHERE INSTR(?,FIRMA.FIRMANR)<>0

    Ha tehát a Where feltételben szereplő paraméter (?) egy olyan sztringet tartalmazó cellára mutat, amelynek valamely részlete tartalmazza a szűrőfeltételeként használt (természetesen szöveges) értéket (nálam ez a FIRMA táblában lévő FIRMANR mező), akkor az Instr egy 0-nál nagyobb egész számot ad vissza, vagyis nem 0. 🙂
    Még egyszer köszönöm, nagy segítség volt.
    András

    • A hozzászólás módosításra került: 1 hét, 2 napja telt el a bejegyzés óta- horvimi.
    #5240

    horvimi
    Kulcsmester

    Na, örülök. Ez azért már a nem triviális esetek közé tartozik.
    megjegyezném, hogy ha kódot írtok a kommentbe, akkor a formázó gombok között találtok egy code feliratút.

    Ez megformázza PRE formátumban, azaz l jeleníti meg a kódot, és egy szürke hátteret is ad hozzá.

    Átformáztam, hogy lássátok.

    Imre

7 bejegyzés megtekintése - 1-7 / 7

Be kell jelentkezni a hozzászóláshoz.