[ bobby63 @ 01.08.2005. 17:15 ] @
| Napravio sam bazu iz Accessa i ona funkcionise kako treba, ali da bih olaksao korisniku (sprecio greske) neke rutine moram da radim u VB-u.
I pored pretrage po helpu (verovatno ne koristim pravu rec) nisam uspeo da provalim kako se u VB-u adresira tabela.
Na primer:
zelim da iz tabele
Products
za
ProductID=0003
dobijem vrednost polja
Price
Tabela Produsts se ne nalazi u formi iz koje se poziva VB rutina.
Unapred hvala. |
[ banem @ 01.08.2005. 20:55 ] @
/Air code/
Dim x as String
Dim rst As dao.Recordset, dbs As dao.Database
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("NazivTabele")
rst.MoveFirst
With rst
Find 'upotrebi jednu od metoda za nalazak ID
x = .Fields(BrojKolone-1)
End With
/End Air code/ :)
Objašnjenje po redovima:
x promenljiva je string u koju trpamo vrednost polja. Služi samo demonstracije radi.
Definišemo Recordset (rst) i Database (dbs).
dbs je trenutno otvorena baza.
rst je tabela koju ćeš pretraživati.
MoveFirst u novijim Accessima nije potrebno, ali osigurava kroz svaki prolaz pretragu od početka.
Find - potraži u Helpu kako se pronalazi određeni zapis prema ID broju.
Fields(n) čita vrednost preseka reda u kome je pronađen ID i kolone tabele. Fields(0) čita prvu kolonu, Fields(1) drugu, itd. Uvek za jedan broj manji. Ako imaš devet kolona, vrednost polja iz devete kolone možeš pročitati sa Fields(8).
x uzima vrednost polja. Sa x radiš dalje šta hoćeš, recimo:
MsgBox x
Dodatno pročačkaj Help za Fields/Field, interesantno je.
[ bobby63 @ 12.08.2005. 13:20 ] @
U trenutku postovanja moje poznavanje Access i SQL syntax-e je bilo vrlo skromno (doduse nije ni sada mnogo bolje) ali sam uspeo na dva nacina:
UnitPrice = DLookup("[UnitPrice]", "Products", "[ProductID] =" & Me.ProductID.Value)
___________________
ili na drugi nacin:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT [UnitPrice] FROM Products WHERE ProductID=" & Me.ProductID.Value)
UnitPrice = rs(0)
rs.Close
Set rs = Nothing
__________________
Ovo mi je bilo potrebno da bih kada se sifra proizvoda (Combo BOX) promeni, uz pomoc "On Change" eventa postavio iz druge tabele default cenu proizvoda (koja se moze menjati za tu transakciju).
Sto bi rekao Lao Ce: "Mogu da ti pokazem gde je izvor ali ne mogu da pijem umesto tebe."
Puno hvala na opsirnom odgovoru
|^^^^^^^^^^^^^^\ ||
| B e e r T r u c k | ||'""|""\__,
| _____________ l ||__|__|___|)~~|
(@! )'! (@)"""""**|(@)(@)****|(@)
PUNO hvala
[ mika @ 12.08.2005. 13:37 ] @
xeex, ista tema na dva foruma, Bench® i ovde.
Pa jel si na kraju rešio sve svoje probleme?
[ bobby63 @ 12.08.2005. 22:25 ] @
Bicu potpuno iskren.
Do pre 2 nedelje nikada nisam radio u Access-u, iz principijelnih razloga do sada cak nisam nikada ni istalirao Office (prepisku sam radio u Quarku).
Imam iskustva sa programiranjem, tj radio sam programe za pare (za neke specijalne namene), mada mi je primarni posao nesto drugo.
Jedan moj stari klijent i odlican prijatelj me vec skoro godinu dana svaki put kada se sretnemo nagovarao da mu radim software za poslove njegove firme, nezadovoljan resenjima koja su mu nudjena. Do sada sam uvek odbijao jer nemam nikakvog iskustva sa finansijskim software-om.
Nazalost, sa postepenim popadanjem drzave, sve je manje prostora da se posao bira. Dogovor je da radim od pocetka i da ispunim svaki zahtev.
U trenutku kada sam postovao pitanje koristio sam samo uzasni Access-ov help i nista mi nije bilo jasno, cak ni sintaksa, sto je razlog posta na vise foruma.
Da li sam resio sve svoje probleme? Zar je tako nesto uopste moguce?
Greetings 4 all keyboard warriors and glory for fallen martyrs of digital revolution.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.