Šta je novo?

Access i Visual Basic, braco programeri POMAGAJTE!

bobby63

Čuven
Učlanjen(a)
20.07.2002
Poruke
636
Poena
620
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. :wall:

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. :guitar:
 
dim db as dao.database
dim rs as dao.recordset
dim Cena as double


set db=currentdb
set rs=db.openrecordset("Select price from products where ProductID=3")

if rs.recordcount>0 then
cena=rs(0)
else
msgbox("Ne postoji takav zapis!!!",vbcritical)
endif

-------------------------------------------------

U references mora da ti bude čekiran DAO 3.6.
 
Dok sam pokusaovao da se snadjem u
("Select price from products where ProductID=3")
uspeo sam da nadjem ono sto mi zapravo treba, resenje u jednoj liniji

UnitPrice = DLookup("[UnitPrice]", "Products", "[ProductID] =" & ProductID)

U svakom slucaju puno hvala
 
Dlookup nemoj da koristiš pošto je to jedno 10-ak puta sporiji način nalaženja podatka od rada sa recordsetovima, što je Radax naveo u svom primeru.

Traži u helpu: DAO recordset, ADO recordset i uči!
 
U redu je, nemam ja problema da priznam neznanje. U trenutku postovanja moje poznavanje Access i SQL syntax-e je bilo vrlo skromno (doduse nije ni sada mnogo bolje) ali sada znam da ono sto sam potigao preko:


UnitPrice = DLookup("[UnitPrice]", "Products", "[ProductID] =" & Me.ProductID.Value)
______________________________________

Mogu i da postignem sa:

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("SELECT [UnitPrice] FROM Products WHERE ProductID=" & Me.ProductID.Value)
UnitPrice = rs(0) 'if deo sam izbacio jer nije moguce da nema ovog podatka i nije moguc duplikat

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).

Sada imam drugi problem, treba, u toj subformi, pored sifre proizvoda da stoji i ime proizvoda. Dodao sam novi TextBox ali Posto sve ide preko ProductID-a ne bih zeleo da dodajem novo polje u tabeli. Preko "On Change" eventa u VB-u lako postavim vrednost ali nje naravno nema kada se vratim u taj slog jer nije nigde upisana.
Svaki pokusaj da u "Control Source" postavim neki SQL strig je zavrsio neuspehom, otprilike izgleda ovako:

SELECT [ProductDescription] FROM Products WHERE [ProductID] = Me.ProductID.Value;

Gde je Products druga tabela a zadnji ProductID vrednost "ComboBox-a" u toj subformi.


|^^^^^^^^^^^^^^\ ||
| B e e r T r u c k | ||'""|""\__,
| _____________ l ||__|__|_|)~~|
(@! )'! (@)"""**|(@)(@)**|(@)

Unapred PUNO hvala
 
Poslednja izmena:
Pazi, pazi...

Prvo, postuj ovde koje tabele imaš u bazi.

Drugo, ako želiš da ti se podaci pamte, osnovni uslov jeste da postoji polje u tabeli sa podatkom. Razumeš?

Što se tiče pristupa tabeli, onaj drugi način koji si napisao je višestruko efikasniji i bolji. Nemoj da koristiš Dlookup, video bi kada bi primenio tu komandu na npr. 10.000 slogova, usporila bi ti se baza vrrlo primetno.

Ajd
 
I još nešto - za ovaj problem koji si postovao treba ti join dve tabele, dakle-postuj kako izgledaju tabele pa ćemo da rešimo problem.
 
E da, ne radi ni:
SELECT [ProductDescription] FROM Products WHERE [ProductID] = Forms![Receiving Orders Subform]![ProductID];
 
U medjuvremenu sam resio problem preko Bound Column propertija Combo Box pa u textBox-u stavim ControlSource=ProductID.Column(2)
U svakom slucaju puno hvala na trudu i strpljenju.

Sto bi rekao Lao Ce: "Mogu da ti pokazem gde je izvor ali ne mogu da pijem umesto tebe."

PS
E da, prethodni post je van konteksta jer sam, ne ocekujuci tako brz odgovor, pisao off-line
Jos jedanput hvala
 
Poslednja izmena:
Nazad
Vrh Dno