Kezdőlap › Fórumok › Excel témák › SQL szerver elérés dinamikus paraméterezése
- This topic has 5 hozzászólás, 2 résztvevő, and was last updated 7 years, 4 months telt el by szeter658.
-
SzerzőBejegyzés
-
2017-02-09-13:37 #3372
Hello!
Van egy SQL-szerverünk, amit egy adatkapcsolaton keresztül szólítunk meg EXcelből. A kapcsolatban szerepel egy SQL kifejezés, amiben dátum is van. Pl. „Select * from konyveles where datum >= ‘2017-01-01′”
A kapcsolat nagyon jól működik, de jelenleg a dátumot csak fixen tudom beírni a kifejezésbe. (Azaz havonta vagy évente át kell néznem az összes ilyen Excel tábla hivatkozást.) A hivatalos MS honlap szerint lehetne a dátumot paraméterként is beadni, pl. egy adott cellára való hivatkozással.
Sajnos nekem nem sikerült ilyen hivatkozást beleírni az SQL kifejezésbe, mindig csak hibaüzeneteket kapok.
Van erre valamilyen tapasztalatotok, hogy miként lehetne ezt megoldni, azaz mi lehet a pontos szintaktikája egy cella megszólításának?Előre is köszönöm:
Szilveszter
2017-02-09-21:24 #3373Szia!
Hogyan csatlakozol az SQL szerverhez?
MS SQL-lel?Az Adatok/Kapcsolatok ablak második lapján ott van az SQL kérdés.
próbáld meg a konkrét dátumot vagy dátumokat kérdőjelre cserélni.Nézd meg mi történik frissítéskor, és hogy hogyan változik a kapcsolatok ablak!
Imre
2017-02-15-15:56 #3377Szia!
Elnézést a késői reagálásért, de csak most tudtam tesztelni a válaszban foglaltakat.
Sajnos a kapcsolathoz nem nagyon értek, csak használom… De mellékelek egy képernyőképet a kapcsolatról és az SQL parancsról. A cégspecifikus adatokat kitakartam, ezért vannak üres foltok a képen.
Kérdőjellel sajnos nem megy, hibaüzenetet kapok. Próbáltam a ‘Munka1!A1’ és #Munka1!A1# és @Munka1!A1 megoldásokat is. Mindegyikre hibaüzenetet kaptam, hol ilyet, hol olyat, de a lényeg, hogy nem jutottam előrébb. Lehet, hogy a megoldás a „Paraméterek” nyomógomb lenne, de sajnos az inaktív.Előre is köszönöm:
Szilveszter
Attachments:
You must be logged in to view attached files.2017-02-16-20:45 #3381Kicsit utánanéztem, nem sokkal lettem okosabb. Az biztos, hogy nem könnyű dologról van szó.
Ez egy SQL szerver kapcsolat, nem MS QUERY kapcsolat.Elképzelhető, h csak makróval lehet megcsinálni.
1. Meg kellene próbálni rögzítővel felvenni azt, hogy az SQL parancsban megváltoztatod a dátum értéket.
2. Ha sikerül, akkor a kódban a konkrét dátum helyére már be lehet varázsolni egy cella aktuális értéket, vagy esetleg be is kérheti a dátumot egy Inputbox-ban
3. A makróhoz készítesz egy indító gombot, vagy hozzáadsz egy billentyűkombinációt.
4. A makrót talán érdemes lenne külön munkafüzetbe tenni, vagy az Egyéni makró munkafüzetbe.
5. Indításkor bekérné a kívánt dátumot, és a kapcsolatban módosítaná a dátumot, majd elmentené a munkafüzetet.Ha az egész, amit leírtam, kínai, mert nem makróztál még soha, és nincs senki körülötted, aki segíthetne, akkor ki kell találni valamit.
Imre
2017-02-17-08:55 #3387Szia Imre!
Megpróbáltam a makrórögzítést és működő dolognak tűnik. Lehet, hogy ez lesz a vége a történetnek.
A makrózással nincs gond, teljesen világos, amit írtál.Köszönöm:
Szilveszter
2017-07-26-17:23 #3829Szia Imre!
Ma dolgoztam az SQl-szerverrel és beugrott egy lehetséges megoldás, amit szeretnék itt megosztani.
A problémám az volt, hogy a dátumot nem tudtam dinamikusan változtatni. Mivel nekem alaovetően a lekérdezés gyorsasága számít, így sok esetben csak az adott év vagy hónap adatai kellenének az SQL-szerverről.Az SQL-ben a feltételt így módosítanám:
HAVING CorrectedDate >= CONVERT(DATETIME, CONCAT(year(Getdate()), ‘-‘, month(Getdate()),’-01′), 102)Azaz a rendszerdátum évét és hónapját összefűzöm egy karakterlánccá, amit aztán dátumformátummá alakítok. Pl. a mai napon futtatva a parancsot, az Excel ezt a feltételt küldené az SQL-szervernek:
HAVING CorrectedDate >= CONVERT(DATETIME, ‘2017-07-01’), 102)Persze itt felmerül az évváltás és a hónapváltás kérdése, de ezeket szerintem már könnyebb kezelni.
Üdv,
Szilveszter -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.