Imam ovakav problem:
Radim program za ulaz –izlaz robe s skladista.
Imam formu u kojoj unosim podatke po racunima (primkama),gdje sve unosim u bazu ulaznih racuna-tablice su pod 1.,također na isti princip unosim podatke za izlazne racune(po uzdatnicama),funkcionira super.Elementi su povezani sifrarnikom za artikle.Nadam se da je ovo otprilike jasno .Nisam naveo sva polja koje koristim radi lakseg prezentiranja problema.
Ali to izgleda otprilike ovako:
1.Tablice ulaza: "ulazniRacuni" [ulazniRacuni].[Datum_racuna] i " Elementi" s poljima Sifra_artikla i Kolicina.
Veza 1:mnogo , PK je ID
Tablice ulaza:" tblizlaznielementi" polje Datum_izlaza i " tblizlaznielementi" s poljima IZ_Sartikla i IZ_Kolicina.
Veza 1:mnogo ;
Gdje su IZ_Sartikla i Sifra_artikla polja u koje unosim sifru artikla iz sifrarnika.Znaci polja koja su sifrirana iz istog sifrarnika.
Jer za svaki artikl imam ulaz i izlaz s skladista.
Moram dobit ovakav report:
Sifra Artiklal UL_TOTAL IZ_TOTAL
1 Cipele 100 20
2 tenisice 200 10
3. papuče 50 20
4…….………….
Artikl se vuče s dlookup("artikal","sifrarnik_artikla",rb=reports!…..)
U modulu definiram globalnu promenljivu SQL izraz: :
Public SQL_Report As String
Za report Open event promjenim RecordSource:
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = SQL_Report
End Sub
A u formi imam kod u kojem izvrsavam upit:
txtdatum_Od i txtdatum_DO su unbound polja u formi koja mi sluze za unos datumskih kriterija.
Ovo je sql s kojim dobivam rezultat za izlazne racune(izlaz):
SQL_Report= " SELECT [tblizlaznielementi].[IZ_SArtikla], SUM([tblizlaznielementi].[IZ_Kolicina]) AS IZ_TOTAL "
SQL_Report=SQL_Report & " FROM tblizlazniracuni INNER JOIN tblizlaznielementi ON [tblizlazniracuni].[ID]=[tblizlaznielementi].[ID] "
SQL_Report=SQL_Report & " WHERE [tblizlazniracuni].[Datum_izlaza] BETWEEN " & DateToStr(Me!txtdatum_OD) & " AND " & DateToStr(Me!txtdatum_DO) SQL_Report=SQL_Report & " GROUP BY [tblizlaznielementi].[IZ_SArtikla] "
SQL_Report=SQL_Report & " ORDER BY [tblizlaznielementi].[IZ_SArtikla];"
Rezultat:
Sifra Artiklal IZ_TOTAL
1 Cipele 20
2 tenisice 10
3. papuče 20
4…….………….
Ovo je SQL s kojim dobivam rezultate ua ulazne racune(ulaz).
SQL_Report =" SELECT [Elementi].[Sifra_artikla], sum([Elementi].[Kolicina]) AS UL_TOTAL"
SQL_Report =V & " FROM ulazniRacuni INNER JOIN Elementi ON [ulazniRacuni].[ID]=[Elementi].[ID]"
SQL_Report = SQL_Report & " WHERE [ulazniRacuni].[Datum_racuna] BETWEEN " & DateToStr(Me!txtdatum_OD) & " AND " & DateToStr(Me!txtdatum_DO) "
SQL_Report = SQL_Report & " GROUP BY [Sifra_artikla] "
SQL_Report = SQL_Report & " ORDER BY [Sifra_artikla];"
Rezultat:
Sifra Artiklal UL_TOTAL
1 Cipele 100
2 tenisice 200
3. papuče 50
4…….………….
Kako napravit sql izraz iz ova dva da bi dobio kompletni izvještaj(ulaz i izlaz po artiklu).
Znači ove dvije tablice moraju biti povezane preko sifre artikla.