Zuko | 16.03.2011 15:27 |
---|---|
Predmet:sql upit u VBA-modu Nisam hito da uzimam staru temu mada je vezana za prenos MIP-1023 u WML formatu, prenos sam uradi i validacija mi je prošla ok. Radi se o sljedecem kad uradim upit direktno na tabelu sa uslovima mjeseca uradi kako treba ali pošto u tabeli imama više firmi pa mi da podatke za sve uposlenike, ali kada hoću da napravim recordsett na Query koji izdvaja podatke iz tabele radnika u kojoj imam i sifru firme javlja mi gresku " too few parameters, expected 2" da ima previse parametara. Query koj sam napravio izgleda ovako: u SQL-u: SELECT TLD.jmb, TLD.Mjesec, Tradnik.Sifra_Preduzeca, TLD.Osnovna_plata, TLD.Masa_staza, TLD.Neto_plata, TLD.Neto_plata_stvari, TLD.Neto_ukupni, TLD.Bruto_plata, TLD.Bruto_plata_stvari, TLD.Bruto_ukupni, TLD.sindikat, TLD.FS, TLD.PornaLD, TLD.PIO, TLD.ZO, TLD.OON, TLD.Olakšice, TLD.SumaBrutoDoprinosa, TLD.Plata2 FROM TLD LEFT JOIN Tradnik ON TLD.jmb = Tradnik.JMB WHERE (((TLD.Mjesec)=[forms]![test]![mjesec1]) AND ((Tradnik.Sifra_Preduzeca)=[forms]![test]![sifrafirme])); ovako sam ga prenio u VB(mislim kao i sve, da je u redu(jer kompajler nejavlja geršku): SQL = "select * from s1" i kada setujem RS3 javlja gore navedenu grešku Set Rs3 = Db.OpenRecordset(SQL)ž sad neznam dali mi je SQL naredba u VB dobro napisana Molim za pomoć |
miro35 | 16.03.2011 15:49 |
---|---|
Predmet:Re: sql upit u VBA-modu Ovako ja imam u svojoj funkciji: Set Rs1 = Db.OpenRecordset("Select distinct sifra FROM qry1022", dbOpenDynaset) Set Rs2 = Db.OpenRecordset("SELECT * FROM PodaciOPrihodimaDoprinosimaIPorezu WHERE sifra='" & Rs1!sifra & "' order by Mjesec") Možda najbolje da probaš na samom query staviti ono Forms!frmMIP1023!Firma (npr) Isto tako staviš za mjesec isto na query i onda staviš ovako recordset u VB-u: Set rs2 = db.OpenRecordset("SELECT * FROM qryISPISMIP1023 ", dbOpenDynaset) i onda pišeš: rs2!TLD.Mjesec |
zxz | 16.03.2011 16:07 |
---|---|
Predmet:Re: sql upit u VBA-modu Sta ti je ovo polje njesec? jeli datum broj ili strinG. Sifra_Preduzeca pretpostavljam da je broj. Ako nije napisi. |
Zuko | 16.03.2011 16:31 |
---|---|
Predmet:Re: sql upit u VBA-modu Mjesec je ključno polje iz tabele mjeseca gdje imam rb(ključ) po mjesecima od 1..12 naziv (ime mjeseca) i dani (broj dana u mjesecu). sifra_preduzeca jeste nuber a za miru sve sam ja ovo gorwe probao kad setujem rs3 ovako Set Rs3 = Db.OpenRecordset("SELECT * FROM TLD WHERE mjesec = " & Forms!test!Mjesec1 & " ORDER BY TLD.Mjesec, TLD.DatumLD, TLD.jmb") radi samo sto mi daje sve uposlenike za mjesec a kad dam Set Rs3 = Db.OpenRecordset(SQL) onda mi javlja gresku iz posta 1 a napravio sam query u kome izdvajam iz tabele TLD (tabela ld), preko tabele tadnika gdje je upisana sirfa preduzeca(taj query radi ok), ali dad u VB napravim SQL i pozovem taj query nece SQL = "select * from s1" mislio sam da je greska u sintaksi pa sam stavio na kraju ; (a znam da netreba), ali kad nece onda sve probaš |
zxz | 16.03.2011 17:00 |
---|---|
Predmet:Re: sql upit u VBA-modu Dim SQL as string Dim SQLUslov as string dim Uslov1 as integer Dim Uslov2 as integer Uslov1=[forms]![test]![mjesec1] uslov2=[forms]![test]![sifrafirme] SQL="SELECT TLD.jmb, TLD.Mjesec, Tradnik.Sifra_Preduzeca, TLD.Osnovna_plata, TLD.Masa_staza, TLD.Neto_plata, TLD.Neto_plata_stvari, TLD.Neto_ukupni, TLD.Bruto_plata, TLD.Bruto_plata_stvari, TLD.Bruto_ukupni, TLD.sindikat, TLD.FS, TLD.PornaLD, TLD.PIO, TLD.ZO, TLD.OON, TLD.Olakšice, TLD.SumaBrutoDoprinosa, TLD.Plata2 FROM TLD LEFT JOIN Tradnik ON TLD.jmb = Tradnik.JMB "' --->nakraju jedno prezno mjesto SQLUslov="WHERE " & uslov1 & " AND " & uslov2 SQL=SQL & SQLUslov Set Rs3 = Db.OpenRecordset(SQL) |
Zuko | 16.03.2011 17:29 |
---|---|
Predmet:Re: sql upit u VBA-modu Nije dobro ovaj sql da mi sve zaposlene u bazi, a ne izdvoji samo one za zadanu firmu. SQL="SELECT TLD.jmb, TLD.Mjesec, Tradnik.Sifra_Preduzeca, TLD.Osnovna_plata, TLD.Masa_staza, TLD.Neto_plata, TLD.Neto_plata_stvari, TLD.Neto_ukupni, TLD.Bruto_plata, TLD.Bruto_plata_stvari, TLD.Bruto_ukupni, TLD.sindikat, TLD.FS, TLD.PornaLD, TLD.PIO, TLD.ZO, TLD.OON, TLD.Olakšice, TLD.SumaBrutoDoprinosa, TLD.Plata2 FROM TLD LEFT JOIN Tradnik ON TLD.jmb = Tradnik.JMB "' --->nakraju jedno prezno mjesto kada u sql zadam i polje TLD.sifra firme, ponovo da istu grešku kao u prvom postu da a mozes li mi reci što ovaj sql gdje kazem select * from s1 (jer u query-u s1 je sve kako mi treba) nece da radi |
roko | 16.03.2011 20:01 |
---|---|
Predmet:Re: sql upit u VBA-modu Zašto ne provaš stvoriti upit kroz Query pa stvi upit šifru neke firme i šifru nekog mjeseca pa pogledš upit kroz SQL View i vidiš gdje si falio možda LEFT JOIN postane INNER JOIN ili nešto treče mislim da je problem u vrsti podataka pa možda upit treba na neki drugi način pozvati ili je možda TLD.sifra firme text |
zxz | 16.03.2011 20:03 |
---|---|
Predmet:Re: sql upit u VBA-modu Ma daj zakaci to i kazi sta hoces? |
zxz | 16.03.2011 20:06 |
---|---|
Predmet:Re: sql upit u VBA-modu Citat: SQL="SELECT TLD.jmb, TLD.Mjesec, Tradnik.Sifra_Preduzeca, TLD.Osnovna_plata, TLD.Masa_staza, TLD.Neto_plata, TLD.Neto_plata_stvari, TLD.Neto_ukupni, TLD.Bruto_plata, TLD.Bruto_plata_stvari, TLD.Bruto_ukupni, TLD.sindikat, TLD.FS, TLD.PornaLD, TLD.PIO, TLD.ZO, TLD.OON, TLD.Olakšice, TLD.SumaBrutoDoprinosa, TLD.Plata2 sql bez uslova sad na njega dodajes uslov Citat: stim da je uslov1 i uslov2 memorijske u kojima je ucitan uslov sa formeSQLUslov="WHERE " & uslov1 & " AND " & uslov2 sada sastavis ova dva stringa SQL=SQL & SQLUslov i ovo je sad sql koji trebas pokrenuti. |
zxz | 16.03.2011 20:06 |
---|---|
Predmet:Re: sql upit u VBA-modu Citat: SQL="SELECT TLD.jmb, TLD.Mjesec, Tradnik.Sifra_Preduzeca, TLD.Osnovna_plata, TLD.Masa_staza, TLD.Neto_plata, TLD.Neto_plata_stvari, TLD.Neto_ukupni, TLD.Bruto_plata, TLD.Bruto_plata_stvari, TLD.Bruto_ukupni, TLD.sindikat, TLD.FS, TLD.PornaLD, TLD.PIO, TLD.ZO, TLD.OON, TLD.Olakšice, TLD.SumaBrutoDoprinosa, TLD.Plata2 sql bez uslova sad na njega dodajes uslov Citat: stim da je uslov1 i uslov2 memorijske u kojima je ucitan uslov sa formeSQLUslov="WHERE " & uslov1 & " AND " & uslov2 sada sastavis ova dva stringa SQL=SQL & SQLUslov i ovo je sad sql koji trebas pokrenuti. |