|
![]() |
#1 |
Registered User
Datum registracije: Aug 2004
Lokacija: Velika Gorica
Postovi: 41
|
visual basic pomoc
Hocu si napravit neku bazu koja bi mi trebala sluzit uz pracenje proizvodnje po radnim nalozima, pokusavam i nekaj uspio. doso sam do djela di bi trebo da kada mi se popunjava comobox iz nekog stupca kojeg sam ja nazval u access Name, to sve stima podaci mi se popunjavaju, ali ostali ovi redovi kako da slozim kada mi se stupac Name ocitava u comobox da mi onda automatski se ucitavaju druge vrijednosti u texbox?! znaci da kad listam Name dodem npr.do 2323 i onda da mi se ispise automatski ostala podrucjka koja sam specificiro...npr.objekt, naziv kupca... Evo kod Private Sub Form_Load() Dim vrnt As Variant ' uzimanje svih RN iz baze Data1.DatabaseName = "C:\Documents and Settings\Nikola\Desktop\New Folder\Samples.mdb" Data1.RecordSource = "Select Distinct [Name] " + _ "from Companies order by [Name]" Data1.Refresh ' Load the Company Names into the ComboBox Control With Data1.Recordset Do While Not .EOF vrnt = ![Name] If IsNull(vrnt) Then vrnt = "" cboRightCombo.AddItem CStr(vrnt) kupac.AddItem CStr(vrnt) .MoveNext Loop End With FormExit: Exit Sub End Sub Private Sub cboRightCombo_Change() ComboSearch cboRightCombo End Sub Private Sub cmdClose_Click() Unload Me End Sub Private Sub ComboSearch(box As ComboBox) Dim boxIndex, posCursor As Integer, txt As String, lExst As Boolean txt = box.Text posCursor = box.SelStart If posCursor <> 0 Then lExst = False For boxIndex = 0 To box.ListCount - 1 If UCase(Left(box.List(boxIndex), posCursor)) = _ UCase(Left(txt, posCursor)) Then box.Text = box.List(boxIndex) box.SelStart = posCursor lExst = True Exit For End If Next If Not lExst Then box.Text = Left(txt, posCursor - 1) + Mid(txt, posCursor + 1) box.SelStart = posCursor - 1 End If End If End Sub Private Sub kupac_Change() ComboSearch kupac End Sub
__________________
MicroH@rd |
![]() |
![]() |
![]() |
#2 |
Premium
Datum registracije: Feb 2007
Lokacija: Sesvete
Postovi: 25
|
Ako sam te dobro shvatio, ti imaš ComboBox u koji kad upišeš slovo "z", on se automatski postavi na prvi unos u combo koji počinje sa "z" (npr zABa ili sl.) Imaš još neke kontrole kao što su TextBox, CheckBox i sl. koje bi se trebale popuniti sa vrijednostima koje se nalaze u access tablici "Companies" u retku koje u "Name" stupcu ima unos "zABa". Moj prijedlog ti je da počneš od Accessa: - Ako već nemaš, onda u tablicu iz koje vučeš podatke stavi jedno polje tipa Autonumber koje će ti biti primarni ključ za tu tablicu. Zatim u VB-u složi SELECT koji bi ti dohvačao sva potrebna polja i ono autonumber polje (AutonumberPK), npr: '<<<<---->>>> Data1.RecordSource = "SELECT DISTINCT (Name), AutonumberPK, Adresa, Aktivan " + _ "FROM Companies ORDER BY [Name]" '<<<<---->>>> Zatim kada puniš combo sa company u ItemData property od ComboBoxa ubaci ID iz autonumber polja, npr: '<<<<---->>>> Dim ID As Long, vrnt As String With Data1.Recordset Do While Not .EOFEnd With '<<<<---->>>> Sljedeći korak ti je kada nađeš taj član u Combu da se u Data1.Recordset-u pozicioniraš na tog člana i pročitaš njegove podatke: '<<<<---->>>> If UCase(Left(box.List(boxIndex), posCursor)) = UCase(Left(txt, posCursor)) Then box.Text = box.List(boxIndex)End If '<<<<---->>>> Ovo bi se vjerojatno moglo napraviti upotrebom polja i sl, ali volim raditi s bazom pa sam to ovako smislio. Ako trebaš, imam ti još prijedloga kako možeš poboljšati aplikaciju. Pozz
__________________
Something something ... |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
|
|