Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Nedvd 19. 07. 2012, 15:33:34

Název: VBA dohledávání dat
Přispěvatel: Nedvd 19. 07. 2012, 15:33:34
Dobrý den,
předem se omlouvám že píši sem ale většina lidí ve VBA pracovala. Potřebuji poradit s vytáhnutím dat z DB v Accessu. Dotaz má následující syntaxi:
strSQL = "SELECT count(*) as ok FROM Pozadavek WHERE Vysledek = -1 AND Oblast_kontroly = (SELECT ID_oblasti FROM Oblast_kontrol WHERE Nazev LIKE '" & Text18.Value & "') AND Datum_zadani BETWEEN #" & d_in & "# AND #" & d_out & "#"

Jedná se o vytažení počtu záznamů které splňují zadané podmínky, jenže chyba nastává v sekci : Datum_zadani BETWEEN #" & d_in & "# AND #" & d_out & "#" kdy mi celý dotaz vrátí data za období od začátku roku po d_out, jednoduše řečeno vůbec nebere v potaz proměnnou d_in.
Zkráceně řečeno mám 4 záznamy které jsou každý v jednom kvartále když chci počet za první kvartál vrátí mi to 1, když chci za druhý kvartál tak 2 , 3 kvartál 3 záznamy což mi nekoresponduje s uvedeným dotazem.
Našel jsem hodně řešení ale v Accessu nejde použít ani convert ani to_date. Proměnné d_in a d_out jsou typu String, sloupec Datum_zadaní v tabulce je typu Date.
Tato funkce mi určuje hodnoty proměnných d_in a d_out a nikde jinde než v této funkci tyto proměnné nenastavuji:

Select Case PoleSeSeznamem20.ListIndex
        Case 0
            d_in = "1/1/" & DateTime.Year(Date)
            d_out = "31/3/" & DateTime.Year(Date)
            obd_vystup = "1" + DateTime.Year(Date)
        Case 1
            d_in = "1/4/" & DateTime.Year(Date)
            d_out = "30/6/" & DateTime.Year(Date)
            obd_vystup = "2" + DateTime.Year(Date)
        Case 2
            d_in = "1/7/" & DateTime.Year(Date)
            d_out = "30/9/" & DateTime.Year(Date)
            obd_vystup = "3" + DateTime.Year(Date)
        Case 3
            d_in = "1/10/" & DateTime.Year(Date)
            d_out = "31/12/" & DateTime.Year(Date)
            obd_vystup = "4" + DateTime.Year(Date)
    End Select


Děkuji za radu.