Lekérdezések egymásba ágyazása Access
2022-09-04T11:21:55+02:00
2022-09-04T22:16:53+02:00
2022-09-04T22:35:38+02:00
Kakukk
Sziasztok.
Van két lekérdezésem amit egy SQL-be kéne írnom, hogy az első lekérdezés paraméterét tudjam használni egy ADOQuery-be.

Az első lekérdezés (ebben van a paraméter amit nem ismer fel az ADOQuery)

SELECT Szlevfej.TELJDATUM, Szlevfej.SZID FROM Szlevfej WHERE (((Szlevfej.TELJDATUM)=[D]));
Második lekérdezés, amibe kéne az elsőt ágyaznom...

SELECT SzallitasiCimek.SZID, SzallitasiCimek.VID, SzallitasiCimek.Orszag, SzallitasiCimek.Iranyitoszam, SzallitasiCimek.Varos, SzallitasiCimek.Cim, SzallitasiCimek.H, SzallitasiCimek.TOROLVE FROM SzallitasiCimek LEFT JOIN Dátumra ON SzallitasiCimek.[SZID] = Dátumra.[SZID] WHERE (((SzallitasiCimek.TOROLVE) Is Null) AND ((Dátumra.SZID) Is Null));
Az első lekérdezés "Dátumra" néven van elmentve.
Van valami szabály, amit nem tudok... Ha valaki esetleg segítene, megköszönném!
Mutasd a teljes hozzászólást!

  • Lehet, hogy csak a :kettőspont maradt ki? [D:] és akkor az Access megkérdezi a felhasználótól egy dialógusablakban, hogy "Na, mennyi a D?" mire a felhasználó visszakérdez, hogy "Mi az, hogy D? A dió ára kilogrammonként?"

    Use parameters to ask for input when running a query
    Mutasd a teljes hozzászólást!
  • Nos, Access és a Delphi7 másképp kezeli, más szintaktikát használ paraméternél, és pár helyettesítő karakternél.
    Access paraméternek akkor érzékel valamit, ha kapcsos zárójelek közt van. pl: [D]
    Delphi ugyanezt akkor érzékeli, ha az SQL-ében kapcsos zárójel nélkül kettőspntal kezdődik. :D
    Sőt, a delphi kicsit érzékenyebb is.
    Az SQL végén a pontosvesszőt el kell hagyni, és a paraméterek közt feltétlen kell neki szóköz.
    Ez utóbbi csak paraméteres lekérdezésnél van...
    Tehát a delphi nálam nem érzékeli jól a paramétert ebben az esetben :D)
    Csak ha a zárójelet megelőzi egy szóköz, így :D ) (Ez valahogy érthető is)
    És itt a bökkenő valószínűleg.
    Ha a delphi SQL-jében egy Access-ben lévő paraméteres lekérdezés szerepel, nem érzékeli a paramétert az ADOQuery.
    Ha azonban a segédlekérdezést bele tudnám szerkeszteni a fő lekérdezésbe, és úgy másolnám az ADOQuery-be, akkor a szintaktikát ki tudnám javítani, hogy a delphi felismerje paraméterként.
    Remélem érthető voltam.
    Próbálkoztam úgy is, hogy a delphiben paramétert hoztam létre CreateParameter-rel, de nem tudta hozzá rendelni, mert valószínű az SQL-ben nem találja a paramétert. Hibaüzenet is erre utalt.
    Mutasd a teljes hozzászólást!
  • LEFT JOIN Dátumra ON SzallitasiCimek.[SZID] = Dátumra.[SZID]
    Ebben a sorban, elvileg a JOIN utáni Dátumra lekérdezés helyére bemásolható a segédlekérdezés.
    De a Dátumra.[SZID]- del már nem tudok mit kezdeni.

    Amúgy most veszem észre, hogy ott is a kapcsos zárójeleket bent felejtettem a Query SQL-jében.
    Megpróbálom elhagyni őket, és majd jelentkezem...
    Mutasd a teljes hozzászólást!
  • Sajnos a problémám nem oldódott meg a szögletes zárójelek elhagyásával :(
    Mutasd a teljes hozzászólást!
  • Sajnos, a probléma megoldására nem a szegletes zárójelek elhagyását javasolták.
    C'est la vie, mondaná egy művelt német (mivel tud franciául).
    Mutasd a teljes hozzászólást!
  • Én nem látok javaslatot. Kire gondolsz, ki javasolta? 
    A problémám nem az accessben létrehozott lekérdezésben van. Az jól működik.
    Annak SQL-jét ha teljes egészébe bemásolom egy ADOQuery-be Delphi7 alatt, na ott keletkezik a problémám.
    A paraméter nem jön létre, pedig minden esetben már tervezésnél is létrejön, ha jó az adatbázissal a kapcsolat.
    Így tervezési nézetben már be lehet állítani típust, és alapértelmezett értéket.
    Ezt csak akkor lehet, ha az ADOQueri SQL-je tartalmazza a paramétert.
    Természetesen a szintaktikát be kell tartani, mert mint fentebb írtam, eltérés van az Access és Delphi7 között.
    Ezért gondoltam egyet, és a segéd lekérdezést szerettem vona a fő lekérdezésbe tenni, így azt az ADOQueribe írni. 
    De mint kiderült láma vagyok hozzá.
    Szóval javaslatod?
    Mutasd a teljes hozzászólást!
  • Bár rosszul írtam! A problémám az Accessel van
    Nem tudom a fő lekérdezésbe szerkeszteni a segédlekérdezést, ami a paramétert tartalmazza.
    Ez a fő gondom jelenleg!
    A fő lekérdezésben a segédlekérdezés neve helyére bemásolva azt zárójelek közé...
    Elvileg...
    Mutasd a teljes hozzászólást!
abcd