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

Kako ovo da izvedem? Jedan proizvod dve sifre !

[es] :: Access :: Kako ovo da izvedem? Jedan proizvod dve sifre !

[ Pregleda: 3509 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kent
Petar Petrovic

Član broj: 132242
Poruke: 29
212.200.177.*



Profil

icon Kako ovo da izvedem? Jedan proizvod dve sifre !09.02.2008. u 00:05 - pre 197 meseci
Iz odredjenih razloga u lageru prodavnice trebalo da omogucim da jedan isti proizvod moze imati dve ili vise razlicitih cena. Pri tome bih hteo da pri unosu proizvoda u odredjenoj formi proverim da li proizvod postoji u prodavnici pod tom sifrom i koja mu je cena i da ukoliko novi proizvod ima razlicitu cenu, tom proizvodu dodelim i dodatnu sifru pod kojom cu ga voditi samo u lageru prodavnice.
Dakle, zelim da jedan isti proizvod u lageru prodavnice ima razlicitu cenu i pri tome ima i osnovnu sifru pod kojim ga vodim u magacinu i dodatnu sifru za prodavnicu.
pr.
proizvod koji vec postoji u prodavnici
Sifra1 P01
Naziv Proizvod1
...
...
Cena 100,00
Sifra2 1

proizvod koji unosim
Sifra1 P01
Naziv Proizvod1
...
...
Cena 200,00
Sifra2 2

Kako ovo mogu izvesti ?
 
Odgovor na temu

nidisa

Član broj: 78939
Poruke: 88
161.51.11.*



Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !09.02.2008. u 05:59 - pre 197 meseci
U ovom slucaju samo moras napraviti da tvoja sifra u tabeli bude podesena kao "Indexed: Yes (Duplicates OK)", a neku drugu kolonu (recimo autonumber) koristis kao Primary Key.

Na ovaj nacin mozes unositi neogranicen broj artikala sa istom sifrom, a da opet svaki ima svoj primarni key.

A sto se tice provjere da li vec postoji artikal sa istom sifrom, to zahtjeva samo malo programiranja. Preporucujem koristenje "Dlookup" naredbe nakon sto uneses podatke u formu.

Nesto kao:

Dim sSifra As String

sSifra = "" 'ponistavanje vrijednosti

sSifra = DLookup("Sifra", "tblArtikli", "Sifra = " & Me.frmArtikli.txtSifra)

if sSifra <>"" then 'ako je engine nasao nesto sto odgovara uvjetu
msgbox "Sifra vec postoji"
end if

[Ovu poruku je menjao nidisa dana 09.02.2008. u 07:12 GMT+1]
----There is no place like 127.0.0.1-----
 
Odgovor na temu

Miro35
Miroslav Čondrić
BiH

Član broj: 63672
Poruke: 122
*.tel.net.ba.

Sajt: Tel.net.ba


+3 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !09.02.2008. u 08:36 - pre 197 meseci
Evo ti primjer artikala
miro
Prikačeni fajlovi
 
Odgovor na temu

kent
Petar Petrovic

Član broj: 132242
Poruke: 29
212.200.176.*



Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !09.02.2008. u 21:33 - pre 197 meseci
Hvala obojici na trudu. Sada cu da probam da primenim vasa resenja, pa se javljam ako je upalilo.
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.co.yu.



+8 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !10.02.2008. u 19:03 - pre 197 meseci
Nisam najdetaljnije pročitao pitanje, ali bih rekao da ti trebaju dve povezane tabele, u stvari da kažem tri. Jedna tabela proizvodi, druga tabela prodavnice i treća tabela cene koja bi povezivala proizvode i prodavnice, tj imala bi tri polja, ProdavnicaID, ProizvodID i Cena.
Ozbiljan i odgovoran mladić
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !11.02.2008. u 14:26 - pre 197 meseci
Ako imas isti proizvod pod dve razlicte sifre, kako ce kasa da zna o kome se radi i koju cenu da uzme?
 
Odgovor na temu

kent
Petar Petrovic

Član broj: 132242
Poruke: 29
212.200.183.*



Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 00:30 - pre 197 meseci
Na odgovarajucem combo box-u bi se u tom slucaju pojavila oba artikla sa dve razlicite cene, pa bih izabrao onaj koji mi odgovara. Moja ideja je da pri unosenju interne otpremnice iskontrolisem da li mi se odgovarajuci proizvod nalazi u lageru prodavnice i pod kojom cenom, pa ako je cena ista dodeljujem novu sifru proizvodu po kojoj cu da organizujem lager i u combo box-u da zakacim kolonu. Ne znam da li sam bio dovoljno jasan, ali u svakom slucaju priblizavam se resenju, pa ako uspem javicu sta sam uradio.
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 13:51 - pre 197 meseci
Ispada da jedan kupac kupi hleb po 2 dinara, a kupac odmah posle njega moze taj isti hleb da kupi po 3 dinara, a sve zavisi od toga sta ce kasir da izabere iz kombo boksa. Hvala, ali ja ne bih kupovao u toj radnji ;-)

A so bzirom kako se cene brzo menjaju, trebace ti mnoooogo sifara, jer ima mnooogo artikala.
 
Odgovor na temu

kent
Petar Petrovic

Član broj: 132242
Poruke: 29
212.200.176.*



Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 14:24 - pre 197 meseci
Ja se apsolutno slazem sa tobom, pre svega, zbog toga sto me sada ne bi bolela glava oko toga, ali poslodavac tako hoce, a mogu ti reci da sam takve stvari mogao da iskusim na sopstvenoj kozi i to u po nekima savrsenoj EU. Kada sam prvi put sam usao u prodavnicu cipela, stajala je jedna cena, a kada sam u tu istu prodavnicu otisao sa osobom, koja je igrom slucaja poznavala zaposlene u prodavnici dobio sam iste cipele po "nesto" nizoj ceni.
Bilo kako bilo, ja ovde imam problem sa kodom. Naime posto slabo stojim sa VB dobro bi mi dosao savet ili jedan primer, kako da pri upisu cene za odredjeni artikal, program odmah proveri da li taj artikal vec imam na lageru i koja mu je cena. Dakle treba da proveri da li sifra unetog artikla vec postoji u lageru (IF), a zatim da li taj artikal ima istu ili razlicitu cenu od one koju sam tek uneo (ElseIf). Posle toga mi ostaje samo da artiklu dodelim dodatnu sifru. Nesto sam pokusavao na osnovu onoga sto mi je savetovao nidisa, ali ne ide. Kod treba da se izvrsi na dogadjaju After Update na controli CenaPoJedMer.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 15:39 - pre 197 meseci
To što si cipele kupio po nižoj ceni kad si se pojavio sa poznatom osobom se zove popust koji se ne daje svakoj mušteriji i savim je legalna stvar u EU, a verujem da će i kod nas biti praksa. Popust koji prodavac ima pravo da da nema veze sa osnovnom prodajnom cenom artikla. Uostalom i kod nas se mogu cene nivelisati po potrebi i iz raznih razloga, ali se ne mogu voditi knjigovodstveno i istovremeno dve cene za isti artikal. To kako se kasnje rešava u finansijskom knjigovodstvu prepusti finasijskom knjigovođi. Ovo što ti pokušavaš spada u domen prekršaja.
Zašto onda lepo ne uvedeš u tabelu kolone ProdajnaCena i CenaUPredprodaji ili CenaSaPopustom (za one koji imaju pravo na popust).
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.co.yu.



+8 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 18:22 - pre 197 meseci
Ja i dalje ne razumem zašto ne bi napravio tri tabele.

Tabela 1 - Artikli
ID---------Naziv
1----------Cipele
2----------Patike
3----------Moka-Sine

Tabela 2 - Klijenti
ID---------Kategorija
1----------Klijenti koje volim
2----------Klijenti koje ne znam
3----------Klijenti koje hoću da ojadim

Tabela 3 - Cene
ArtikliID---KlijentiID-----Cena
1---------1------------500 din
1---------2------------600 din
1---------3------------700 din

Zatim napraviš formu i podformu.
U glavnoj formi čiji će RecordSource biti tabela Artikli imaš combo box kojim ćeš da filtriraš formu, podforma u stvari predstavlja tabelu Cene.
Povežeš polja ID iz glavne forme i ArtikliID iz podforme i videćeš sve cene za neki proizvod. Ako želiš da u comboboxu imaš dve cene, njegov rowsource postavi kao join te tabela Cene i Artikli.

Savetovao bih ti da ne ubacuješ novu šifru u tabelu artikli već nov podatak u tabeli Cene sa šifrom tog artikla. Ja bih postavio unique index u tabeli cene, ili u tvojoj tabeli Artikli i to na poljima ArtikliID i Cena. Zatim bih posle svakog unosa cene ubacivao tu Cenu u tabelu Cene, s tim da se u slučaju da već postoji ta kombinacija ništa neće desiti.

Druga varijanta je recimo
If DCount("Cena","Cene","ArtikliID = 1 And Cena = 500") = 0 Then
StrSQL = "Insert Into Cene (ArtikliID, Cena) Values (1, 500)"
Currentdb.Execute StrSQL
End If

Mislim da je najbolje da taj kod bude u Form_AfterUpdate, ne pre toga. Šta ako neko unese cenu 420, a hteo je recimo 425, vrati se u polje i onda izmeni cenu. Tada bi uneo šifru dva puta nakon praktično jedne izmene cene. Možda možeš ovo da uradiš tek prilikom štampanja računa.

Pozdrav svima

Ozbiljan i odgovoran mladić
 
Odgovor na temu

kent
Petar Petrovic

Član broj: 132242
Poruke: 29
212.200.178.*



Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 18:49 - pre 197 meseci
Kod mene je problem sto ja LagerProdavnica u kojem ce se javiti isti proizvod sa dve razlicite cene, formiram automatski sa izdavanjem Interne otpremnice i unosenjem Pocetnog stanja.
Pri tome zamislio sam sledece: pri unosu pocetnog stanja automatski dodeljujem svakom unetom artiklu dodatnu sifru (i to radi), ali je problem kod interne otpremnice posto ne baratam dobro sa VB-om, pa ne znam kako da ispisem kod koji bi pri unosu proizvoda proverio da li taj proizvod postoji i ako postoji koja mu je cena. Ako je postojeca cena, razlicita od one koju unosim onda dodeljujem novu dodatnu sifru tom proizvodu, a ako je ista onda mu takodje dodeljujem dodatnu sifru, ali ce ona sada biti ista kao dodatna sifra postojeceg artikla koju sam dodelio u Pocetnom stanju. Na taj nacin bi u Lageru dobio:

1) cene se razlikuju :

P01 Proizvod1 50(kom) 100,00 DP01
P01 Proizvod1 30(kom) 200,00 DP02

2) cene su iste

P01 Proizvod1 50(kom) 100,00 DP01
P01 Proizvod1 30(kom) 100,00 DP01

pa bih onda u lageru konacno bilo:
P01 Proizvod1 80(kom) 100,00 DP01

Dakle, potreban mi je samo kod kojim mogu da istovremeno pretrazim dva razlicita polja u query-ju. Nesto sam pronalazio na forumu, ali nista ovako, pa nisam mnogo odmakao.
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.co.yu.



+8 Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !12.02.2008. u 20:08 - pre 197 meseci
Najbolje bi bilo da napišeš nazive polja da bi dobio baš tačan odgovor, ovako mogu ti predložiti nešto ovako


If DCount("Proizvod","Lager","Proizvod = Proizvod1 And Cena = 50") = 0 Then
StrSQL = "Insert Into Lager (Proizvod, Cena) Values (Proizvod1, 50)"
else
StrSQL = "Update Lager Set Kolicina = Kolicina + " & NovaKolicina & " Where Proizvod = Proizvod1 And Cena = 50"
end if
Currentdb.Execute StrSQL

NovaKolicina to je kolicina koju si upravo ukucao. Nisam upoznat sa nazivima dokumenata, ali mislim da se dokument kojim se povećava stanje robe na lageru naziva prijemnica. Znači za pretragu dva polja treba da koristiš reč AND, kao i u mom prethodnom postu, samo zameni nazive tabela.
Ozbiljan i odgovoran mladić
 
Odgovor na temu

kent
Petar Petrovic

Član broj: 132242
Poruke: 29
212.200.176.*



Profil

icon Re: Kako ovo da izvedem? Jedan proizvod dve sifre !13.02.2008. u 00:51 - pre 197 meseci
domaci_a_nas puno hvala, ali u medjuvremenu sam uspeo da resim problem. Ovo cu svakako koristiti na jednom drugom mestu, a ovaj problem sam resio tako sto sam pri unosu Pocetnog stanja i Interne otpremnice svakom proizvodu dodelio sifru koja predstavlja kombinaciju sifre proizvoda i unete cene. Moram da naglasim da mi je ovo resenje predlozio i Getsbi jos davne 2007.god u temi koju sam postavio sa istim problemom, medjutim s obzirom da jedan duzi period nisam radio na bazi potpuno sam smetnuo sa uma da sam o ovom problemu vec pisao, mada u tom trenutku nisam bas najasnije shvatio sta je hteo da mi kaze. Getsbi jos jednom hvala, a i svima ostalima koji su ovde samnom ispravljali krive Drine.

Pozdrav !
 
Odgovor na temu

[es] :: Access :: Kako ovo da izvedem? Jedan proizvod dve sifre !

[ Pregleda: 3509 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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