[ milekrajina @ 30.07.2009. 14:15 ] @
kako da uradim pretrasu baze sa sql + vrednost iz txtboxa
npr:zelim da mi iz baze iscita sve ucenike koji su polozili ispit sa 6 (broj 6 bi uneo u txtbox) i da rezultat prikaze u dbGridu?
veza sa bazom je preko Data1 objekta...
hvala
[ stefanpn @ 30.07.2009. 14:33 ] @
Ako hoćeš egzaktne vrednosti:

Code:
Data1.Recordset = "SELECT * FROM tabela WHERE polje = '" & Textbox1.Text & "'"


ili ako hoćeš da pretražuješ po delu sadržaja:

Code:
Data1.Recordset = "SELECT * FROM tabela WHERE polje like '%" & Textbox1.Text & "%'"
[ milekrajina @ 30.07.2009. 14:51 ] @
probao sam nece,
moze li okacen primer,molim te
[ captPicard @ 30.07.2009. 15:11 ] @
Okaci ti šta si probao, pa da vidimo.
[ milekrajina @ 30.07.2009. 15:33 ] @
IF Textbox1.text <> "" THEN
SELECT * FROM ZB_0000 WHERE ........
sam kucao u evntu butona
[ milekrajina @ 30.07.2009. 15:39 ] @
pomozite ako imate vremena,natucao sam svasta
ne verujem da ovaj kod valja...
dajte mi neki primer,da na njemu vidim kako to funkcionise
treba da mi rezultat pretrage prikaze u dbgridu
molim vas.....
[ Marko_L @ 30.07.2009. 16:28 ] @
Citat:
SELECT * FROM ZB_0000 WHERE ........

Pa ovo gde si stavio tačkice je zapravo najbitniji deo :) Daj ceo kod.
Takođe, ne znam da li ti je ovo pseudo kod ili si stvarno ovo napisao, ali SQL statement ne možeš samo da ubaciš u kod, nego moraš da promeniš recordsouce data objekta
Code:
Data1.RecordSource = "SELECT * FROM ZB_0000 WHERE Nesto = '" & Text1.Text & "'"
Data1.Refresh

naravno ako se radi o tekstualnom tipu podataka, ako je brojčani onda ukloni apostrofe i umesto text1.Text stavi Val(Text1.Text)
[ Marko_L @ 30.07.2009. 16:34 ] @
E da, tek sad vidim ovo što je Stefan napisao, verovatno u brzini
Code:
Data1.Recordset = "SELECT * FROM tabela WHERE polje = '" & Textbox1.Text & "'"

Ovo neće raditi. SQL upit treba dodeliti recotsource-u, a ne recordsetu
Takođe, ni ovo neće raditi
Code:
Data1.Recordset = "SELECT * FROM tabela WHERE polje like '%" & Textbox1.Text & "%'"

ne samo zbog recordseta, nego i zato što DAO koliko se sećam ne prepoznaje "%" kao wildchar, već treba upotrebiti "*" koji menja bilo koji niz ili "?" koji menja bilo koji karakter.
[ milekrajina @ 31.07.2009. 08:37 ] @
probao sam svasta,ne ide...
prevrnuo sam celu knjigu programiranje baza podataka od Smith-a i Amundsena-a
i ni reci o ovome....
Molim vas ljudi,stavite mi ovde kod,kompletan za to...ovako nista ne ide,pogubi zivce...
Znaci imam txtbox gde kucam ocenu za ispit,butin cijim pritiskom izvrsavam i dbgrid gde mi prikazuje podatke?
pristupam preko Data1 bazi
Molim vas..
[ Marko_L @ 31.07.2009. 08:59 ] @
Mile, kompletan kod za ono što tebi treba si već dobio. Ako ti to iz nekog razloga ne radi, izvoli postovati više detalja o tome, dakle... kako se maifestuje to "ne radi", jel ti izbacuje grešku i koju, u kojoj liniji i naravno, kao što su neki pre mene već rekli, postavi deo koda koji pravi problem, ali ne u fazonu
Code:
Ja sam probo ovo i nece
If... Then........
   SELECT * FROM ............

nego lepo iskopiraj tačno šta si napisao i neko će ti sigurno pomoći i ukazati na to gde si pogrešio. Ovako samo kukaš bezveze, jer ja stvarno ne vidim kako neko može da ti pomogne na osnovu "Pomagajte ljudi, nešto neće".
[ milekrajina @ 31.07.2009. 09:43 ] @
Ovako,bazu sam uradio u Accessu i preko Data1 objekta povezao sa vb 6
Na formi imam txtbox,command buuton,dbGrid...
Pokusavam da prikazem rezultat upita u dbgridu,tako sto unesem brojcanu vrednost u txtbox i pritisnem command buuton i on prikaze rezultat u dbgridu...
Kod sam kucao u eventu command butona 1 i on je sledeci:
Code:

Private Sub Command1_Click()
Dim strSQL as String
Dim strWhere as String

strSQL = "SELECT * FROM ZB_0000"
strWhere = ""

if text1.Text<>"" then
   strWhere = strWhere & "USR_ID = '" & text1.text & "' and "
end if
if strWhere <> "" then 
   strWhere = left(strWhere, len(strWhere) - 5)
end if

if strWhere <> "" then
   strSQL = strSQL & " WHERE " & strWhere
end if
Set data1.Recordset = db.OpenRecordset(strSQL)
End Sub

a izbacuje mi gresku Run time '424'
Object required

Moje pitanje je to,gde sam pogresio?
da li treba jos sta podesiti u propertis sekciji za ove objekte...
Hvala i pomozite,ako mozete

Edit by Marko_L > Sređeni code tagovi

[Ovu poruku je menjao Marko_L dana 31.07.2009. u 11:04 GMT+1]
[ Marko_L @ 31.07.2009. 10:10 ] @
Pretpostavljam da ti izbacuje grešku na poslednjoj liniji, a to je zato što verovatno nisi deklarisao objekat db, niti gde si mu setovao bazu. Dakle, imaš dve mogućnosti... ili lepo deklariši db objekat i setuj mu bazu
Code:
Dim db As Database
Set db = OpenDatabase(putanja do baze)

'odradi sta treba, ne primer taj postojeci kod, a zatim zatvori db objekat

db.Close
Set db = Nothing


Drugi i verovatno jednostavniji način je da zameniš ovu liniju
Code:
Set data1.Recordset = db.OpenRecordset(strSQL)

sa ove dve
Code:
Data1.RecordSource = strSQL
Data1.Refresh

Ovo bi trebalo da spreči pojavljivanje greške, a ako ne dobijaš podatke u gridu, proveri da li ti je opovezan sa datasetom, tj. pogledaj da li je DataSource datagrid objekta podešen na Data1. To bi trebalo da bude to.
[ milekrajina @ 31.07.2009. 10:34 ] @
Hvala do neba Marko_L
sve radi kao svajcarski sat
Hvala jos jednom na ukazanoj pomoci
[ captPicard @ 31.07.2009. 10:43 ] @
mile, nauči najprije osnove baze podataka, SQL-a, povezivanja na bazu podataka, a onda pitaj dalje. olakšati ćeš i sebi i nama...
[ Marko_L @ 31.07.2009. 10:50 ] @
Nema na čemu Mile, tu smo da se pomažemo. Ali, ubuduće, ako trebaš pomoć, gledaj da problem izložiš jasno i koncizno i okačiš kod koji ne radi i sigurno ćeš dobiti pomoć, a ne da moramo da lupamo glavu šta ti ne radi i objašnjavamo se 10 postova oko nečega što može da da stane u 1.
[ stefanpn @ 31.07.2009. 11:39 ] @
Izvinjavam se zbog moje greške. možda sam samo zbunio čoveka, skroz ne namerno... Nisam ni primetio (već duže vreme koristim ADO).