[ sale024 @ 27.06.2010. 20:57 ] @
jos sam jako nov u programiranju pa se ne snalazim bas najbolje.

primer imam bazu podataka Prezime/Ime/JMBG

i sad hocu da popunjavam neki formular ali da ne moram da pisem Prezime nego da imam listu i da iz te liste izaberem prezime koje mi treba.Da ne bi u to polje upisao prezime koje ne postoji u bazi podatka.

nadam se da me razumete sta bi mi trebalo...
[ Dacex @ 27.06.2010. 21:32 ] @
ako sam te dobro shvatio, onda bi ja to ovako uradio.

primer:

ovo ubaciš u form load
Code:

combo1.clear
do until rs.eof = true
combo1.additem rs.fields("Prezime").value
rs.movenext
loop


Code:
Private Sub Combo1_Clic()
text1.text = combo1.text' text1 ti je mesto u koje ce se ubaciti izabrana vrednost iz comba
End Sub

[ unisoft @ 27.06.2010. 23:36 ] @
Dacex moram da te ispravim, preskocio si jednu veoma bitnu stvar. Recordset se mora prvo postaviti na prvi red zapisa a onda se petljom kreces do poslednjeg ispitujuci pre ulaska u petlju da li je trenutni zapis EOF ili pak moze da se desi da je 1 zapis BOF i EOF sto znaci da je data tabela prazna. Ako ne postavis if uslov koji ce to da ispita nastaje greska.

Ovako da krenemo, postoji vise nacina dao ovo uradis ali uradicemo sa ADOom.

Imas neku bazu koja je na primer na lokaciji C:\baza.mdb. U ovoj bazi imas tabelu podaci a u njoj samo kolonu prezime.

Za rad progama prvo moras da uradis 1 stvar:
1. dodaj reference u VB-u za sledece: Microsoft ActiveX Objects 2.8 Libray i Microsoft ActiveX Recordset 2.8 Libray
(ovo ti treba samo u slucaju ako imas instalaciju Visual Basica na racunaru i zelis da i ti napises ovaj kod i pokrenes ga iz VBa)

Code:

Private Sub cmdOK_Click()

    Dim adoCN As New ADODB.Connection
    Dim adoRS As New ADODB.Recordset
    Dim strSQL As String
    Dim strPATH As String
    
    strPATH = "C:\baza.mdb"
    strSQL = "SELECT * FROM podaci" 
*- dzoker znak za sve kolone iz tabele podaci (ovim upitom se vraca skup zapisa svih kolona i svih redova tabele podaci)
    
    With adoCN
        .ConnectionString = "Driver=Microsoft Access Driver (*.mdb);DBQ=" & strPATH
        .CursorLocation = adUseClient
        .Mode = adModeRead
        .Open
    End With
    
    Set adoRS = adoCN.Execute(strSQL)
    
    If adoRS.EOF Or adoRS.BOF Then
        MsgBox "Tablea podaci baze je prazna", vbCritical + vbOKOnly, "Fatalna grska"
        Exit Sub
    End If
    
    adoRS.MoveFirst
    
    Do Until adoRS.EOF
       lstLISTA.AddItem adoRS.Fields("prezime").Value
        adoRS.MoveNext
    Loop
    
    MsgBox "Tabela podaci baze je procitana", vbInformation + vbOKOnly, "Obavestenje"
    
End Sub


Uz poruku sam ti postavio rad, kao dodatak. Skini i dekompresuj. To sam uradio na brzaka. Kod je 100% ispravan i najkraci mogci. Potrudi se malo i guglaj, na ovu temu imas na milione primera i tutorijala. Kada dekmpresujes dodatak bazu obavezno prekopiraj na C disk.


[Ovu poruku je menjao unisoft dana 28.06.2010. u 01:29 GMT+1]
[ Dacex @ 28.06.2010. 02:46 ] @
Unisoft u pravu si ;-) skroz sam zaboravio na to...inače to uvek koristim.
[ sale024 @ 28.06.2010. 06:52 ] @
Hvala na pomoci pogledao sam primer i ukapirao kako ovo mogu da koristim za dalje programcice.


trebalo bi mi i kako bi mogao da pisem u textbox i da mi program sam ispisuje moguca imena u odnosu na ono sto sam ja upisao.

ali smatram da je to malo mnogo za moje trenutno znanje.tako da taj kod mozete da mi objasnjavate samo ako zelite...
[ dzigilibonglica @ 28.06.2010. 11:39 ] @
Kod je super, ali ima jedna mala logicka greska:

Kada ima recimo u tabeli: Pera Peric i Zika Peric,
u combu ce mu se pojaviti 2 puta Peric, i tako za svako prezime koje se javlja vise puta.

Treba promeniti liniju:

Code:

strSQL = "SELECT * FROM podaci"


da bude:
Code:

strSQL = "SELECT DISTINCT prezime FROM podaci"


i onda nece biti dupliranja.
[ unisoft @ 28.06.2010. 12:03 ] @
Kolega hvala na savetu :). Naravno to da (znam za sta sluzi DISTINCT-u trenutku se toga nisam setio) ali ja sam mu dao kod e sada neka malo cita knjige i znace sta dalje da uradi. Jbg ne mogu mu ja na sve misliti.
[ sale024 @ 28.06.2010. 14:38 ] @
hvala i na doradi koda.i iskreno za to sam znao.imam dosta dobru skriptu za sql.


[ dzigilibonglica @ 28.06.2010. 17:15 ] @
Ma nishta, samo napred ...