[ miki987 @ 09.05.2010. 12:34 ] @
nekoliko pitanja koja se odnose na resavanje jednog problema oko izrade programa za izradu faktura,otpremnica i t.d.
imam 2 listview-a jedan mi sluzi da izlista brojeve faktura na form_load (Listview2)a pomocu Listview2_cblClick vrsim iscitavanje/pretragu na osnovu br_fak i prikazujem rezultate u Listview1. Sve to savrseno funkcionise a baza mi nije relacijski povezana vec se puni podacima bez nekog posebnog redosleda jer kao sto rekoh ovamo vrsim raslanjivanje podataka na osnovu brojeva fakture, medjutim problem se sastoji u sledecem:

Kada Listview2 ima fakturu pod rednim brojem 01_2010 a u njoj vise stavki koje prodajem svaka takodje nosi broj fakture i kao takva se pojavljuje i na Listview2, tako da npr.ukoliko imam 5 stavki u jednoj fakturi pod brojem 01_2010 svih 5 u Listview2 ce se pojaviti jeddno ispod druge. Moje pitanje je moze li se na neki nacin ovo limitirati pa da Listview2 prikaze samo jedan rezultat 01_2010 a da klikom na njega u Listview1 imam svih 5 stavki?
Sa relacijama nisam probao mada imam ideju kako bi to izgledalo, ali posto ne znam kako se radi ovo mi je jedino resenje,pa molim za pomoc. Saljem vam bazu i izleg listview-a
[ miki987 @ 10.05.2010. 00:23 ] @
plz hoce li se naci neko ko moze da mi pomogne, nadam se da sam objasnio lepo sta zelim
[ captPicard @ 10.05.2010. 08:24 ] @
Stavi u upit DISTINCT.

Npr.

Code:
Select DISTINCT broj_fature, .... from Tablica
[ miki987 @ 10.05.2010. 11:40 ] @
Code:
SQL = "SELECT DISTINCT * FROM baza_faktura ORDER BY redni_broj DESC;"

ovako?

evo koda

Code:
Sub popuni_listview2()
Dim SQL As String

openconn

SQL = "SELECT * FROM baza_faktura ORDER BY redni_broj DESC;"
Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView2.ListItems.Clear
Do Until rs.EOF
ListView2.ListItems.Add 1, , rs("redni_broj")
ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")
rs.MoveNext
Loop
closeconn
ListView2.ListItems(1).Selected = True
End Sub
[ captPicard @ 10.05.2010. 14:42 ] @
Nikada nemoj uzimati sve podatke u upitu ako ti oni nisu potrebni. Dakle:

Code:
Sub popuni_listview2()
Dim SQL As String

openconn

SQL = "SELECT DISTINCT broj_fakture, redni_broj FROM baza_faktura ORDER BY redni_broj DESC;"
Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView2.ListItems.Clear
Do Until rs.EOF
ListView2.ListItems.Add 1, , rs("redni_broj")
ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")
rs.MoveNext
Loop
closeconn
ListView2.ListItems(1).Selected = True
End Sub
[ miki987 @ 10.05.2010. 15:05 ] @
captPicard izgleda da se nisam lepo izrazio, ajmo ovako:

imam dva listview-a, kao na slici i to Listview1 i Listview2.
Listview1 mi sluzi za prikaz stavki koje fakturisem nekome npr.

|datum|broj fakture|kupac|artikal|cena|pdv|valuta

u Listview2 vucem iz iste tablice samo broj fakture, i prikazujem sledece

|redni broj|broj fakture|

e sad, na komandu Listview2_dblClick vrsim rasclanjivanje podataka odnosno klasicnu pretragu gde sve rezultate sa istim brojem fakture izlistam u Listview1 i to radi.

Moj problem je sto Listview2, posto vuce iz iste tablice broj fakture, prikazuje npr. 5 stavki koje su pod istim brojem fakture. Znaci ako imam 5 artikla u Listview1 oni se u Listview2 prikazu 5x (kao na slici)
Ja zelim da se sada u Listview2 prikaze samo jedan rezultat od ovih 5 stavki tako da klikom na jedno od tih upit klasicno izvrsi pretragu ALI prikaze svih 5 rezultata.

Ovo sam probao ali ne reaguje,nema greske ali i ne radi.
Sta radi ovo
Code:
...DESC LIMIT 1;"
[ miki987 @ 10.05.2010. 16:04 ] @
sada sam ovde http://www.bhwebmasters.net/?p=158 citao o toj naredbi i zapravo to bas jeste ono sto mi treba ali ne radi
[ captPicard @ 11.05.2010. 07:46 ] @
Napravi dva upita. Jedan ti vuče samo distinct broj_fakture i on ti popunjava desni listview. A drugi upit popunjava stavke u lijevom listview, parametar mu je broj_fakture kojeg odabereš u desnom listview.
[ miki987 @ 11.05.2010. 12:35 ] @
evo primera da se lakse razumemo
[ captPicard @ 11.05.2010. 13:18 ] @
Ma razumijem ja tebe, ali ti mene ne razumiješ :)

Dakle, ListView2 (desni) napuniš iz zasebnog upita:

Code:
Sub popuni_listview2()
Dim SQL As String

openconn

SQL = "SELECT DISTINCT broj_fakture, redni_broj FROM baza_faktura ORDER BY redni_broj DESC;"
Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView2.ListItems.Clear
Do Until rs.EOF
ListView2.ListItems.Add 1, , rs("redni_broj")
ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")
rs.MoveNext
Loop
closeconn
ListView2.ListItems(1).Selected = True
End Sub


A ListView1 popuniš opet iz zasebnog upita i daš mu parametar broj_fakture onaj koji je odabran u ListView2.

npr:

Code:
sBrojFakture = ListBox2.Items[ListBox2.SelectedItem].Text (ne znam napamet kako ide ovo u VB ali valjda kužiš šta mislim)

Sub popuni_listview1()
Dim SQL As String

openconn

SQL = "SELECT * FROM baza_faktura WHERE broj_fakture= :sBrojFakture ORDER BY redni_broj DESC;"
Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView1.ListItems.Clear
Do Until rs.EOF
ListView1.ListItems.Add 1, , rs("sifra_artikla")
ListView1.ListItems(1).SubItems(1) = rs("naziv_artikla")
.
.
.
rs.MoveNext
Loop
closeconn
ListView1.ListItems(1).Selected = True
End Sub


Je jasnije sada? :)
[ miki987 @ 11.05.2010. 13:55 ] @
:DD kapiram ja tebe

Code:
ListView1.SelectedItem.SubItems(2)
posto je pod ColumnHeaders od ListView1 pod rednim brojem 3

ali ja sam to vec napravio i ovo tvoje
Code:
SQL = "SELECT * FROM baza_faktura WHERE broj_fakture= :sBrojFakture ORDER BY redni_broj DESC;"


napravio kao

Code:
Sub popuni_listview1 ()
Dim SQL As String
Dim br_fak As String

ListView1.ListItems.Clear
br_fak = Text1.Text
    openconn
    SQL = "SELECT * FROM baza_faktura WHERE broj_fakture = '" & br_fak & "' ORDER BY broj_fakture DESC;"
    Set rs = conn.Execute(SQL)


predpostavljam da nisi imao vremena da pogledas primer, mislim da ce ti biti lakse ako pogle3das i ako mi zelis izaci u susret sa ovim
[ captPicard @ 11.05.2010. 14:05 ] @
Pogledao sam primjer. I sve radi ok osim šta ti stavlja više vrijednosti za broj fakture. Jednostavno za taj listview gdje prikazuje brojeve faktura stavi poseban select sa distinctom i to je to.

Pa ako si tako napravio onda bi moralo raditi.
Osim šta ti br_fak nije Text1.Text nego stavi da je Listview2....
[ miki987 @ 11.05.2010. 14:36 ] @
evo kako ide

'//===================================================
'JEDAN klik na listview2
'//===================================================

Code:

Private Sub ListView2_Click()
If ListView2.ListItems.Count = 0 Then
Exit Sub
End If
Text1 = ListView2.SelectedItem.SubItems(1) 'on salje vrednost (broj_fakture) u text1.text po kojem ce se izvrsiti pretraga 
End Sub


'//===================================================
'DUPLI kliik na listview2
'//===================================================
Code:

Private Sub ListView2_dblclick()
popuni_listview2
End Sub


'//===================================================
'PRIKAZ fakture u listview1 iz listview2 na osnovu upita i pretrage
'//===================================================
Code:

Sub popuni_listview1()
Dim SQL As String
Dim br_fak As String

ListView1.ListItems.Clear
br_fak = Text1.Text 'ovaj kupi podatak pod kojim je brojem selektovana faktura, vrsi pretragu i u listview1 prikaze sve pod tom fakurom
    openconn
    SQL = "SELECT * FROM baza_faktura WHERE broj_fakture = '" & br_fak & "' ORDER BY broj_fakture DESC;"
    Set rs = conn.Execute(SQL)...


i to sve lepo radi

ne radi sledece:

primer:

desni (ListView2) prikazuje 6 faktura i to sledecim redosledom:

01_2010
01_2010
01_2010
02_2010
02_2010
02_2010

realno, ja zapravo imam samo DVE fakture, u jednoj 3 stavke i u drugoj 3 stavke i to je u redu.

sada, ja zelim da se u ListView2 prikaze samo te DVE fakture i to:

01_2010
02_2010

ovo opet ponavljam zato sto se vrtimo u krug, ono gore radi i to mi ne predstavlja problem, ovo je problem a upit
Code:
SQL = "SELECT DISTINCT broj_fakture, redni_broj FROM baza_faktura ORDER BY redni_broj DESC;"

ili
Code:
SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura ORDER BY redni_broj DESC;"


ne resava moj problem!!! ko gresi, ja koji ne razume sta mi objasnjavas ili ti koji nisi shvatio sustinu mog problema :D
[ captPicard @ 11.05.2010. 14:43 ] @
Pokaži mi samo dio gdje puniš listview1 i dio gdje puniš listview2.

By the way, baza ti nije dobro definirana, tj. nisi ju normalizirao.
[ miki987 @ 11.05.2010. 14:56 ] @
izvini nisam siguran sta znaci "normalizirati bazu"
inace baza ide u
Code:
C:\baza_program.mdb


inace ovo dodavanje je iz forme "nova.frm"

inace listview2 izvlaci podatke iz iste baze odakle i listview1 a, ustvari tu su kao dva identicna listview-a samo sto jedan ima 14 stavki a ovaj drugi samo 2

[Ovu poruku je menjao miki987 dana 11.05.2010. u 17:56 GMT+1]
[ captPicard @ 11.05.2010. 16:07 ] @
Citat:
miki987
inace listview2 izvlaci podatke iz iste baze odakle i listview1 a, ustvari tu su kao dva identicna listview-a samo sto jedan ima 14 stavki a ovaj drugi samo 2


Ovdje leži prvi problem ako sam dobro shvatio šta želiš reči, a nečeš poslušati šta ti govorim :) I nisi mi dao dobar kod. Mene zanima ovo:

Code:
popuni_listview1
popuni_listview2


Te dvije procedure mi napiši kako ti izgleda kod. Ne možeš imati jedan SQL upit za popunjavanje oba dva listviewa (tj. možeš, ali nečemo komplicirati). samo mi napiši te dvije procedure i pokazati ču ti gdje griješiš.

Drugi problem je da ne razlikuješ osnovne pojmove. Probaj malo poraditi na tome jer če ti biti lakše. Baza nije isto šta i Tablica.

[ miki987 @ 11.05.2010. 16:38 ] @
ovo popuni_listview2 se nalazi u Form_Load i time se program startuje sa popunjenim ListView2 a ListView1 ne diram

Code:
Sub popuni_listview2()
Dim SQL As String

    openconn
     SQL = "SELECT DISTINCT broj_fakture,redni_broj FROM baza_faktura ORDER BY redni_broj DESC;"

    Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
    ListView2.ListItems.Clear
    Do Until rs.EOF
    ListView2.ListItems.Add 1, , rs("redni_broj")
    ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")
rs.MoveNext
Loop
closeconn
    ListView2.ListItems(1).Selected = True
End Sub


popuni_listview1 se aktivira na dogadjaj ListView2_dblClick

Code:
Sub popuni_listview1()
Dim SQL As String
Dim br_fak As String

ListView1.ListItems.Clear
br_fak = Text1.Text 'Text1 se napuni na dogadjaj ListView1_Click
    openconn
    SQL = "SELECT * FROM baza_faktura WHERE broj_fakture = '" & br_fak & "' ORDER BY broj_fakture DESC;"
    Set rs = conn.Execute(SQL)
If rs.EOF Then
closeconn
Exit Sub
End If
ListView1.ListItems.Clear
Do Until rs.EOF
    ListView1.ListItems.Add 1, , rs("redni_broj")
    ListView1.ListItems(1).SubItems(1) = rs("datum")
    ListView1.ListItems(1).SubItems(2) = rs("broj_fakture")
    ListView1.ListItems(1).SubItems(3) = rs("kupac")
    ListView1.ListItems(1).SubItems(4) = rs("artikal")
    ListView1.ListItems(1).SubItems(5) = rs("kolicina")
    ListView1.ListItems(1).SubItems(6) = rs("pdv")
    ListView1.ListItems(1).SubItems(7) = rs("iznos_bez_pdv")
    ListView1.ListItems(1).SubItems(8) = rs("iznos_pdv")
    ListView1.ListItems(1).SubItems(9) = rs("iznos_sa_pdv")
    ListView1.ListItems(1).SubItems(10) = rs("rabat")
    ListView1.ListItems(1).SubItems(11) = rs("iznos_rabat")
    ListView1.ListItems(1).SubItems(12) = rs("valuta")
    ListView1.ListItems(1).SubItems(13) = rs("ukupno")
rs.MoveNext
Loop
closeconn
ListView1.ListItems(1).Selected = True
End Sub


"inace listview2 izvlaci podatke iz iste baze (u pravu si mislio sam na Tablicu) odakle i listview1 a, ustvari tu su kao dva identicna listview-a samo sto jedan ima 14 stavki a ovaj drugi samo 2"
[ captPicard @ 11.05.2010. 16:43 ] @
Makni redni broj iz upita i raditi če ti. Dakle samo

Code:
SQL = "SELECT DISTINCT broj_fakture4 FROM baza_faktura ORDER BY redni_broj DESC;"
[ miki987 @ 11.05.2010. 16:48 ] @
probao sam X puta nece. imas primer probaj i sam i videces



poslao na pvt ceo kod?

[Ovu poruku je menjao miki987 dana 11.05.2010. u 17:59 GMT+1]
[ captPicard @ 11.05.2010. 17:21 ] @
Citat:
captPicard: Makni redni broj iz upita i raditi če ti. Dakle samo

Code:
SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura;"
[ miki987 @ 11.05.2010. 20:00 ] @
?
[ captPicard @ 12.05.2010. 07:10 ] @
Pa makni i taj red, ne treba ti za prikaz broja fakture.
[ miki987 @ 12.05.2010. 09:09 ] @
ako uklonim
Code:
ListView2.ListItems.Add 1, , rs("rednibroj")


onda opet selektuje zutom bojom
Code:
ListView2.ListItems(1).SubItems(1) = rs("brojfakture")


sve sam probao, pravio novu tablicu, brisao primarni kljuc, menjao svojstvo texta (redni_broj/AutoNumber), brisao znakove "_" iz redni_broj/rednibroj ali opet ista stvar
[ captPicard @ 12.05.2010. 09:23 ] @
Ajde daj sliku greške.
[ miki987 @ 12.05.2010. 09:51 ] @
apsolutna ista greska kao ova gore samo je sada selektovan ovo

Code:
ListView2.ListItems(1).SubItems(1) = rs("brojfakture")


uspelo mi je da pokrenem na ovaj nacin prozor bez greske ali mi listview stoji prazan

Code:
br_fak = Text1.Text
    openconn
    SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura WHERE broj_fakture = '" & br_fak & "' ORDER BY broj_fakture;"
    Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn


u text1.text sam uneo rucno po defaultu broj fakture kako bi ga iscitao
[ captPicard @ 12.05.2010. 10:07 ] @
Jesi stavio pravilan naziv polja?

Code:
ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")


a ne

Code:
ListView2.ListItems(1).SubItems(1) = rs("brojfakture")
[ miki987 @ 12.05.2010. 10:12 ] @
da da vratio sve na staro posto mi preglednije sa "_", sve je to u redu...izbrisao sam ceo kod osim ovoga, to je sve sto mi treba:

Code:
Public conn As New ADODB.Connection
Public rs As ADODB.Recordset
Dim SQL As String

Private Sub Form_Load()
popuni_listview2
End Sub
'//===================================================
'konektovanje baze
'//===================================================
    Public Sub openconn()
    conn.Provider = "Microsoft Jet 4.0 OLE DB Provider;Data Source=C:\baza_program.mdb;"
    conn.Open
    End Sub
'//===================================================
'diskonektovanje baze
'//===================================================
    Public Sub closeconn()
    conn.Close
    End Sub
'//===================================================
'popunjavanjelistview-a 2
'//===================================================
Sub popuni_listview2()
Dim SQL As String
br_fak = Text1.Text 'upisano 01_2010
    openconn
     SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura WHERE broj_fakture = '" & br_fak & "';"
    Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView1.ListItems.Clear
Do Until rs.EOF
    ListView2.ListItems.Add 1, , rs("redni_broj")
    ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")
rs.MoveNext
Loop
closeconn
    ListView2.ListItems(1).Selected = True
End Sub


u text1.text kao sto rekoh unesem direktno sa forme 01_2010
onda kada u text1.text pise 2010 on prijavljuje gresku kao gore
kada je text1.text prazan pokrene program bez greske ali prazan listview
[ captPicard @ 12.05.2010. 10:59 ] @
Nikako da me skužiš :)

SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura WHERE broj_fakture = '" & br_fak & "';"
Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView1.ListItems.Clear
Do Until rs.EOF
ListView2.ListItems.Add 1, , rs("redni_broj")
ListView2.ListItems(1).SubItems(1) = rs("broj_fakture")

Ovo ne može raditi. Ti pozivaš

ListView2.ListItems.Add 1, , rs("redni_broj")

a u rs ne postoji to polje! A ako staviš to polje u upit onda ti distinct neče raditi ono šta ti želiš. Dakle trebam u distinct uzeti samo polje broj_fakture i u listview prikazati samo broj fakture, ne treba ti redni_broj u desnom listview. I zašto zapisuješ u textbox? Imaš na dupli klik od listviewa i to je to. (Osim ako ne želiš pretragu, onda ok)
[ miki987 @ 12.05.2010. 12:01 ] @
BINGO !!! :DDD hvala druze napokon je to ono sto sam trazio. hvala ti puno
jos samo jedno kratko pitanje

kako izvesti kretanje napred nazad odnsono gore dole u ovom slucaju uz pomoc dugmeta "napred" i "nazad" kroz listview nesto kao sto za datagrid vec postoji komponenta
[ captPicard @ 12.05.2010. 13:08 ] @
Citat:
miki987: BINGO !!! :DDD hvala druze napokon je to ono sto sam trazio. hvala ti puno
jos samo jedno kratko pitanje

kako izvesti kretanje napred nazad odnsono gore dole u ovom slucaju uz pomoc dugmeta "napred" i "nazad" kroz listview nesto kao sto za datagrid vec postoji komponenta


Pa od mog prvog posta u ovoj temi ti govorim istu stvar koju trebaš napraviti a ti nikako da me shvatiš :) I ubuduće, pokušaj pročitati i shvatiti šta ti oni error window govori, ne priča on nebuloze :)

Kretanje možeš riješiti na OnKeyDown ili kako se već zove.

1. Gledaj da li je stisnuto down ili up
2. Pogledaj na kojem si redu u listview-u (ListView1.ItemIndex ili tako nešto, ne znam napamet)
3. Pomakni se ovisno koji je stisnut (gore ili dole) listView1.ItemIndex = ListView1.ItemIndex +/- 1 (i nemoja zaboraviti pozvati on doubleclick nakon toga da popusti listview sa stavkama)
[ captPicard @ 12.05.2010. 14:25 ] @
Evo:


Code:
      Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
             On Error Resume Next
          Select Case KeyCode
              Case vbKey 'Then Find which key you want to use from the list below
                  'Code to run when key is pressed
          End Select
      End Sub 


vbKeyLButton Left Mouse Button
vbKeyRButton Right Mouse Button
vnKeyCancel Cancel Key
vbKeyMButton Middle Mouse button
vbKeyBack Back Space Key
vbKeyTab Tab Key
vbKeyClear Clear Key
vbKeyReturn Enter Key
vbKeyShift Shift Key
vbKeyControl Ctrl Key
vbKeyMenu Menu Key
vbKeyPause Pause Key
vbKeyCapital Caps Lock Key
vbKeyEscape Escape Key
vbKeySpace Spacebar Key
vbKeyPageUp Page Up Key
vbKeyPageDown Page Down Key
vbKeyEnd End Key
vbKeyHome Home Key
vbKeyLeft Left Arrow Key
vbKeyUp Up Arrow Key
vbKeyRight Right Arrow Key
vbKeyDown Down Arrow Key
vbKeySelect Select Key
vbKeyPrint Print Screen Key
vbKeyExecute Execute Key
vbKeySnapshot Snapshot Key
vbKeyInsert Insert Key
vbKeyDelete Delete Key
vbKeyHelp Help Key
vbKeyNumlock Delete Key

vbKeyA through vbKeyZ are the key code constants for the alphabet
vbKey0 through vbKey9 are the key code constants for numbers
vbKeyF1 through vbKeyF16 are the key code constants for the function keys
vbKeyNumpad0 through vbKeyNumpad9 are the key code constants for the numeric key pad

Math signs are:
vbKeyMultiply - Multiplication Sign (*)
vbKeyAdd - Addition Sign (+)
vbKeySubtract - Minus Sign (-)
vbKeyDecimal - Decimal Point (.)
vbKeyDivide - Division sign (/)
vbKeySeparator - Enter (keypad) sign


I pazi da provjeravaš ako si na zadnjem retku da ne ide dalje jer če ti bacati error. Isto tako ako si na prvom.
[ miki987 @ 12.05.2010. 15:36 ] @
:D e sad me ti nisi razumeo :D

Code:
Private Sub Command1_Click()
ListView2.SelectedItem = ListView2.ListItems(1) 'i sada ovde npr. + 1 i svaki put na clik dugmeta on ide dalje kroz listview
ListView1.SetFocus
End Sub


nadam se da razumes sta zelim.
[ captPicard @ 12.05.2010. 16:13 ] @
Citat:
miki987: :D e sad me ti nisi razumeo :D

Code:
Private Sub Command1_Click()
ListView2.SelectedItem = ListView2.ListItems(ListView2.Selecteditem +/- 1) 'i sada ovde npr. + 1 i svaki put na clik dugmeta on ide dalje kroz listview
ListView1.SetFocus
End Sub


nadam se da razumes sta zelim.


Miki miki, teško čemo mi programera od tebe napravit :)

Ne znam kako točno ide u VB-u ali valjda češ skužiti šta sam želio reči.
[ miki987 @ 12.05.2010. 17:01 ] @
:D jeste tako :D
reci mi postoji li nesto sto gresku 35600 moze da predstravi kao upozorenje recimo da je stigao do kraja?
[ captPicard @ 12.05.2010. 17:09 ] @
Citat:
miki987: :D jeste tako :D
reci mi postoji li nesto sto gresku 35600 moze da predstravi kao upozorenje recimo da je stigao do kraja?


Do kojeg kraja?

Pokaži kod i reci gdje ti baca grešku.
[ miki987 @ 12.05.2010. 17:44 ] @
situacija sledeca:
kada listview2 (desni) ima dva columna npr.
|redni_broj|broj fakture|

ovo funkcionise
Code:
ListView2.SelectedItem = ListView2.ListItems(ListView2.Selecteditem + 1)


zbog ranije price da mi listview mora imati samo jedan column i to
|broj_fakture|

ovo ne funkcionise
Code:
ListView2.SelectedItem.Text = ListView2.ListItems(ListView2.Selecteditem.Text + 1)




Takodje kada u gornjem slucaju sve ovo radi, kada se spusti do poslednjeg izbaci sledece:





odnosno da je stigao do kraja
[ captPicard @ 12.05.2010. 18:00 ] @
Ajde mi objasni kako ovo može funkcionirati?

Code:
ListView2.SelectedItem.Text = ListView2.ListItems(ListView2.Selecteditem.Text + 1)


Lijepo ti kaže type mišmaš. Ti zbrajaš type string sa type integer. Šta želiš postići u ovome retku?

I to kada dođe do kraja sam ti par postova gore rekao da moraš paziti. Prije nego mu kažeš da ide na slijedeći redak pronađi count-1 od tog listview-a tj. koliko ima redova i ako je trentuno odabrani red = broju redova kaži mu da izađe iz procedure.

A sada ozbiljno. Mislim da sam ti još prije par mjeseci rekao da ne počinješ ništa ozbiljnije raditi dok ne naučiš osnove. Zašto me nisi poslušao? :)
[ miki987 @ 12.05.2010. 18:14 ] @
vidi teorijski kapiram, mozda ne razumem teminologiju, greska je stio zbrajam odnosno racunam tekst i broj
verovatno bih trebao definisati
Code:
dim racunaj as string

pa ga u kodu gde radi + ili - ubaciti ali...ili gresim???

[ captPicard @ 12.05.2010. 18:17 ] @
String je tekst. Tekst ne možeš nikako zbrajati.

Ne kužim šta če ti ta linija. zar ti ovo

Code:
ListView2.SelectedItem = ListView2.ListItems(ListView2.Selecteditem + 1)


ne radi dobro posao?

Ako ne, objasni mi šta točno želiš sa ovime

Code:
ListView2.SelectedItem.Text = ListView2.ListItems(ListView2.Selecteditem.Text + 1)


i na kojem mjestu ti se to nalazi u kodu.
[ miki987 @ 12.05.2010. 18:29 ] @
kada sam prvi put ovo
Code:
Private Sub Command8_Click()
ListView2.SelectedItem = ListView2.ListItems.Add(ListView2.SelectedItem - 1)
ListView1.SetFocus
End Sub


uveo u program radilo je, medjutim taj project u kojem radim je samo za primere,a onaj glavni gde pisem program otvaram i menjam samo kada znam sta trebam menjati (da ne bi nesto zabrljao :D)

tako sada ovo
Code:
Private Sub Command8_Click()
ListView2.SelectedItem = ListView2.ListItems.Add(ListView2.SelectedItem - 1)
ListView1.SetFocus
End Sub


u onom gde testiram radi a u onom ne radi :D
medjutim znam gde je greska

ovaj test project ima listview2 gde ima dva columna a ovaj drugi gde pisem pravi program ima samo jedan column zbog

Code:
Sub popuni_listview2()
Dim SQL As String

openconn
SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura;"
Set rs = conn.Execute(SQL)
If rs.EOF Then
MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"
closeconn
Exit Sub
End If
ListView2.ListItems.Clear
Do Until rs.EOF

ListView2.ListItems.Add 1, , rs("broj_fakture")  '///////////////////////////////zbog ovog///////////////////////////////////////

rs.MoveNext
Loop
closeconn
ListView2.ListItems(1).Selected = True
End Sub
[ captPicard @ 12.05.2010. 18:41 ] @
Code:
ListView2.SelectedItem = ListView2.ListItems.Add(ListView2.SelectedItem - 1)


Šta ti znači ovaj .Add?!?!?!

Pišeš kod a ne razumiješ šta pišeš, to nije dobro!

Probaj ovako:

Code:
ListView2.SelectedItem = ListView2.SelectedItem - 1
[ miki987 @ 12.05.2010. 19:54 ] @
to add. ko zna kako je zalutalo
ovo ne radi ista greska na kao predhodna :P
[ miki987 @ 13.05.2010. 10:25 ] @
evo resenja

Code:
ListView2.ListItems.Item(ListView2.SelectedItem.Index - 1).Selected = True]


od toga sam napravio ovo

Code:
Private Sub Command8_Click()
on error resume next
ListView2.ListItems.Item(ListView2.SelectedItem.Index - 1).Selected = True
Set Item = ListView2.SelectedItem
If Not (Item Is Nothing) Then
        If ListView2.SelectedItem.Index <= 1 Then
            MsgBox "Dosli ste do samog vrha!"
            Exit Sub
        End If
End If
ListView1.SetFocus
err.clear
End Sub




Code:
Private Sub Command9_Click()
on error resume next
ListView2.ListItems.Item(ListView2.SelectedItem.Index + 1).Selected = True
Set Item = ListView2.SelectedItem
If Not (Item Is Nothing) Then
        If ListView2.SelectedItem.Index <= 1 Then
            MsgBox "Dosli ste do samog dna!"
            Exit Sub
        End If
End If
ListView1.SetFocus
err.clear
End Sub


tako sada to radi samo mi ovo kada odlazi do kraja ne prijavi gresku odnosno MsgBox