Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

relacije u accesu ili na laksi nacin za pocetnika...

[es] :: Visual Basic 6 :: relacije u accesu ili na laksi nacin za pocetnika...

Strane: 1 2 3

[ Pregleda: 7094 | Odgovora: 42 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon relacije u accesu ili na laksi nacin za pocetnika...09.05.2010. u 12:34 - pre 170 meseci
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
Prikačeni fajlovi
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...10.05.2010. u 00:23 - pre 170 meseci
plz hoce li se naci neko ko moze da mi pomogne, nadam se da sam objasnio lepo sta zelim
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...10.05.2010. u 08:24 - pre 170 meseci
Stavi u upit DISTINCT.

Npr.

Code:
Select DISTINCT broj_fature, .... from Tablica

F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...10.05.2010. u 11:40 - pre 170 meseci
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
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...10.05.2010. u 14:42 - pre 170 meseci
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

F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...10.05.2010. u 15:05 - pre 170 meseci
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;"
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...10.05.2010. u 16:04 - pre 170 meseci
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
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 07:46 - pre 170 meseci
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.
F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 12:35 - pre 170 meseci
evo primera da se lakse razumemo
Prikačeni fajlovi
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 13:18 - pre 170 meseci
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? :)
F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 13:55 - pre 170 meseci
: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
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 14:05 - pre 170 meseci
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....
F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 14:36 - pre 170 meseci
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
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 14:43 - pre 170 meseci
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.
F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 14:56 - pre 170 meseci
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]
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 16:07 - pre 170 meseci
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.


F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 16:38 - pre 170 meseci
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"
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 16:43 - pre 170 meseci
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;"

F
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 16:48 - pre 170 meseci
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]
Prikačeni fajlovi
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: relacije u accesu ili na laksi nacin za pocetnika...11.05.2010. u 17:21 - pre 170 meseci
Citat:
captPicard: Makni redni broj iz upita i raditi če ti. Dakle samo

Code:
SQL = "SELECT DISTINCT broj_fakture FROM baza_faktura;"

F
 
Odgovor na temu

[es] :: Visual Basic 6 :: relacije u accesu ili na laksi nacin za pocetnika...

Strane: 1 2 3

[ Pregleda: 7094 | Odgovora: 42 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.