Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako napraviti petlju u Accesu

[es] :: Access :: Kako napraviti petlju u Accesu

[ Pregleda: 2892 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SLOJ.1973

Član broj: 130198
Poruke: 871
195.252.103.*



+41 Profil

icon Kako napraviti petlju u Accesu18.04.2008. u 06:56 - pre 194 meseci
Pozdrav svima.Ako može mala (velika) pomoć.Naime,na glavnoj formi postoji kombo box iz koga se bira broj cenovnika koji će biti upotrebljen.Na podformi taj izabrani broj cenovnika je reper za cenu nekog artikla.E sad,imam problem:Kod unosa novog cenovnika ne menjaju se tj ne unose cene za sve artikle u bazi,već samo za one kojima se cena menja.Tako da recimo u cenovniku broj 5 nemam cene za 2000 artikla (toliko ih ukupno ima u bazi) već samo cene za 20-tak kod kojih je tog dana došlo do promene.I normalno,kad se ukuca artikal,on traži cenu za njega na osnovu combobox-a na gl.formi u koji smo ukucali broj cenovnika.Recimo da ukucani artikal nije među onih 20-tak kod kojih je došlo do promene,pa mi se javlja geška da artikal nema cenu.Kako da provučem kroz pretragu cene artikla kroz petlju da,nađe cenu za artikal ako recimo zadati cenovnik ne sadrži cenu za taj artikal.Znači da nađe poslednju cenu,ako cenovnik "kriterijum" ne sadrži cenu za njega?Ili da prilikom formiranja cena u cenovniku,automatski dodam i ostale kod kojih cena nije promenjena'Međutim to će biti bespotrebno mnogo podataka,jer ima dosta promena.Nadam se da sam bio jasan.Hvala.
Jednog dana...
 
Odgovor na temu

DarioBH
Bosna i Hercegovina

Član broj: 86881
Poruke: 453
*.PPPoE-2665.sa.bih.net.ba.



+1 Profil

icon Re: Kako napraviti petlju u Accesu18.04.2008. u 08:13 - pre 194 meseci
Savrseno jasan, samo dali ti bas trebaju sve stare cijene tog artikla, ako ne samo prepisi preko stare cijene.
Ako trebaju potrebno je da razdvojis u dvije tabele, jedna sadrzi sve info o artiklu, ukljucujuci i sifru artikla (mora biti primarni kljuc) a druga samo polja sifra artikla (bez primarnog kljuca) i cijena. Povezes te dvije tabele preko sifre artikla (jedan prema beskonacno).

Poslije samo u formi ili queryu nakom sto dodas sva polja iz prve tabele dodaj i polje cijena iz druge i to kao Last([Cijena]).
 
Odgovor na temu

SLOJ.1973

Član broj: 130198
Poruke: 871
87.250.46.*



+41 Profil

icon Re: Kako napraviti petlju u Accesu18.04.2008. u 09:02 - pre 194 meseci
Mislim da me nisi razumeo.Želim da na recimo text polje artikal posle ukucavanja ,na after update da mi se provrti kroz petlju cena za taj artikal,to jest da pogleda na cenovnik "kriterijum",pa ako je ima u tom cenovniku,onda o.k.,a ako nema da potraži cenu za taj artikal u nekom od ostalih cenovnika,poželjno sa najmladjim datumom (poslednjim).U svakom slučaju hvala na pokušaju.
Jednog dana...
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Kako napraviti petlju u Accesu18.04.2008. u 11:33 - pre 194 meseci
Kod se može uvek napisati. To ne bi trebalo da bude neki problem. Pogledaj pre nego se odlučiš za pisanje ovaj fajl sa dva query-ja. Daje zadnje cene koristeći prvo grupisanje Group By, a onda u drugom upitu izdvaja zadnje cene funkcijom Last. Možda dobiješ bolju ideju.
Prikačeni fajlovi
 
Odgovor na temu

SLOJ.1973

Član broj: 130198
Poruke: 871
195.252.103.*



+41 Profil

icon Re: Kako napraviti petlju u Accesu18.04.2008. u 12:18 - pre 194 meseci
Sve je to ok.Ja već imam tabelu koja se dobija onako kako je Getsbi objasnio.Meni treba sledeće:
Code:
Private Sub artikal_AfterUpdate()
On Error GoTo Err_artikal_AfterUpdate

   
  If Not IsNull(Me.artikal) Then
       Me.cenaf = DLookup("cena", "[tblcene-datum]", "šifra= " & Me![artikal] & "And brojcenovnika= " & Me!Txtcenovnik)
Else
End If
Exit_artikal_AfterUpdate:
    Exit Sub

Err_artikal_AfterUpdate:
MsgBox Err.Description
Resume Exit_artikal_AfterUpdate
End Sub

gde u tabeli tblcene-datum imam sledeća polja:artikal,datum,cena i broj cenovnika.E sad hoću da u kodu nekako odradim,da ako nema cene za artikal u referentnom cenovniku(Me!Txtcenovnik),da uzme cenu iz tabele tblcene-datum sa poslednjim datumom ili najvećim brojem cenovnika u kome ima cenu taj artikal.Hvala.
Jednog dana...
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Kako napraviti petlju u Accesu18.04.2008. u 14:49 - pre 194 meseci
Koliko u stvari imas tabela gde se moze nalaziti cena? Jednu ili dve? To nisam bas razumeo.

Ako imas jednu tabelu gde se recimo upisuje datum promene cene za svaki artikl, ond svaki artikl u toj tabeli imamo najmanje jednom a neke imamo vise puta. Logicno je da se trazi uvek najnovija cena. Recimo da tabela izgleda ovako:

Code:

ArtiklID   Cena    DatumVazenja
'Jabuke'  15.6    #10 Mart 2007#
'Kruske'  7.6      #10 Mart 2007#
'Jogurt'  4.2      #10 Mart 2007#
'Jabuke'  25.6    #15 Juli 2007#
'Jogurt'  6.5      #12 Maj 2007#


Logicno je da zelis uvek poslednju cenu za svaki artikl. Koja je poslednje cena? Izracunas MAX(DatumVazenja) za savki artikl, pa onda prikazes cenu za taj artikl na taj datum. Primenis Dlookup na taj poslednji kveri.

qryMaxDatumVazenja:
Code:

SELECT ArtiklID, MAX(DatumVAzenja) AS DatumPoslednjePromeneCene
FROM tblCene
GROUP BY ArtiklID


qryAktuelneCene
Code:

SELECT A.ArtiklID, A.Cena
FROM tblCene AS A
INNER JOIN qryMaxDatumVazenja AS B
ON A.ArtiklID = B.ArtiklID AND A.DatumVAzenja = B.DatumPoslednjePromeneCene


Sad iz qryAktuelneCene procitas cenu za bilo koji artikl (moze i dlookup, sto da ne). Uslov je da se svi artikli nalaze u tabeli tblCene barem jednom, sto se lako postize. Cuvati cenu u dve tabele je mnogo komplikovano, jer tada moras da radis ono sto ti radis 'potrazi na mestu A, pa ako nema tamo onada potrazi na mestu B'. Nista IF, nista petlje (cuj, petlje, boze sacuvaj) . Dlookup i nije kod, to je samo funkcija koju nekeko treba pozvati da nam olaksa zivot. Ako mora kod, neka bude sto jednostavniji. A to moze samo ako kveriji odrade svoj posao.



Zidareva teorema: "the best code is no code at all"
 
Odgovor na temu

SLOJ.1973

Član broj: 130198
Poruke: 871
*.evizo.net.



+41 Profil

icon Re: Kako napraviti petlju u Accesu20.04.2008. u 21:18 - pre 194 meseci
Hvala Zidar.Dobio sam ono što sam želeo.
Jednog dana...
 
Odgovor na temu

[es] :: Access :: Kako napraviti petlju u Accesu

[ Pregleda: 2892 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.