Telefonszámunk: 1-472-0679

SQL szerver elérés dinamikus paraméterezése

Kezdőlap Fórumok Excel témák SQL szerver elérés dinamikus paraméterezése

Topic Resolution: Resolved
6 bejegyzés megtekintése - 1-6 / 6
  • Szerző
    Bejegyzés
  • #3372
    szeter658
    Felhasználó

      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

      #3373
      horvimi
      Adminisztrátor

        Szia!

        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

        #3377
        szeter658
        Felhasználó

          Szia!

          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.
          #3381
          horvimi
          Adminisztrátor

            Kicsit 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

            #3387
            szeter658
            Felhasználó

              Szia 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

              #3829
              szeter658
              Felhasználó

                Szia 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

              6 bejegyzés megtekintése - 1-6 / 6
              • Be kell jelentkezni a hozzászóláshoz.