[ bloodymir @ 09.08.2007. 11:44 ] @
Nema nekog iskustva sa access-om a ni sa VB ali mi sad treba i nemam izbora...pa ako bi mogao neki savet..

radi se o pracenju porudzbina..sta je naruceno..sta su dobavljaci potvrdili da ce isporuciti i sta je isporuceno..

Elem..
na formi za unos naruzdbine hocu da mi se vide polja OrderNo, ItemName(combobox), ItemNo(textbox bez mogucnosti editovanja koji se automatski popunjava po izboru ItemName) i Kolicina...


E ovo polje ItemNo mi pravi problem jer ne mogu da provalim kako da ga popunjavam automatski po unosu ItemName

Forma je napravljena nad tabelom Orders koja ima FK_ItemNo.
ItemName vucem iz druge tabele ako ga nema u comboboxu hocu da ga dodam (napravicu dugme za otvaranje forme za unos itema)..Ali...ItemName se naravno nalazi u tabel Items koja ima kao primarykey ItemNo..





[ vipp @ 10.08.2007. 09:49 ] @
Imam jedan predlog:
Šta misliš o tome da ti se u ComboBoxu upiše ItemNo ali da pri izboru stavki, kao podsetnik "šta je koja šifra", u padajućoj listi, vidi i ItemName ?

Nakon toga bi mogao da za akciju Change combobox-a navedeš npr: text1.text=text1.text & combo1.text & VBCRLF

Ovo je kod iz VB i verovatno bi mogao da prodje i u Accessu.

P.S
VBCRLF je u VB prelazak u novi red.
[ Scelle @ 12.08.2007. 00:13 ] @
Za ovo ti ne treba nikakav kod, sve sto treba da uradis je da koristis wizard za Combo Box.

Dakle, procedura bi tekla nekako ovako:

na formu ubacis novi ComboBox
Zatim odaberes opciju "I want the combo box to look up the values in a table or query" (prva ponudjena) /NEXT
Sada odaberemo tabelu iz koje ce podaci biti uzimani. U tvom slucaju to bi bila tabela Items. /NEXT
Odaberes polja koja zelis da prikazes u Combo Box-u. Kao sto ti je vipp vec predlozio, odaberi polja ItemNo i ItemName. /NEXT
Sada mozes da sortiras prikaz po ItemName polju. /NEXT
Odlicno, u sledecem prozoru podesavas sirinu kolona(e). Vjerovatno se ItemNo nece vidjeti (zato sto je cekirana opcija Hide key column (recommended)) i ja ti preporucujem da tako i ostavis. /NEXT
Sada te Access pita hoces li da odabranu vrijednost sacuvas za kasnije ili spremis u neko od postojecih polja.
Mi cemo odabrati drugu opciju (Store that value in this field:) i u Combo Box-u pored odabrati nase polje ItemNo. /NEXT
U sledecem koraku dajes naziv tom Combo Box-u i idemo na /FINISH.

To bi trebalo da radi posao, ako sam ja dobro shvatio problem.

Ako ti se ne pokrene wizard kada na formu ubacis novi Combo Box, provjeri da li je "ukljuceno" dugme Control Wizards na Toolbox paleti.
[ mikson @ 12.08.2007. 15:02 ] @
Citat:
Scelle: ... sve sto treba da uradis je da koristis wizard za Combo Box...


Ovo je u redu ukoliko je potrebno preneti samo vrednost ItemName u neko polje na formi, a na osnovu izabranog ItemNo. Međutim, stvar se komplikuje ukoliko je potrebno da se na osnovu nekog IDa prenesu vrednosti 2 ili više atributa iz neke tabele. Na ovom primeru: hoću recimo da prenesem ItemName, ItemUnitPrice, ItemManufacturer...

Najbolje što sam ja mogao da pronađem, što bi radilo posao, je korišćenje funkcije DLookup. Procedura je ovakva: Imam ComboBox u kome se prikazuje ItemNo, zatim nekoliko tekstboksova koji prikazuju ostale atribute iz tabele iz koje prenosim podatke (ItemName, ItemUnitPrice, ItemManufacturer...). Na događaj AfterUpdate Comboboxa dodajem sledeći kod:
Code:
Me.txtItemName.Value = DLookup("[ItemName]", "[Items]", "[ItemNo]='" & cboItemNo.Value & "'")
Me.txtItemUnitPrice.Value = DLookup("[ItemUnitPrice]", "[Items]", "[ItemNo]='" & cboItemNo.Value & "'")
Me.txtItemManufacturer.Value = DLookup("[ItemManufacturer]", "[Items]", "[ItemNo]='" & cboItemNo.Value & "'")
...

Funkcija DLookup je DomainAgregate Function i ima oblik: DLookup(expression, domain, [criteria]). Expression je u ovom slučaju ime atributa, domain ime tabele, a criteria je uslov po kome se vrši selekcija (po primarnom ključu).
[ Scelle @ 13.08.2007. 22:56 ] @
U pravu si, ako bi trebalo prenijeti vise vrijednosti na osnovu ItemNo onda bi jedini nacin bio preko koda. Ali njemu samo treba da se odredjeno polje popuni sifrom artikla koji on odabere u Combo Box-u. Bar sam tako ja razumio.