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]