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

Kopiranje više podataka u istoj tabeli (Forma i SubForma)

[es] :: Access :: Kopiranje više podataka u istoj tabeli (Forma i SubForma)

[ Pregleda: 3892 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

xl_kid
Knjaževac

Član broj: 82420
Poruke: 159
77.243.16.*



Profil

icon Kopiranje više podataka u istoj tabeli (Forma i SubForma)27.06.2013. u 11:04 - pre 131 meseci
Imam sledeći problem,
svakog meseca radimo anekse ugovora kupcima koji su 90% isti kao i prethodnog meseca (uslovi prodaje, rabat itd). Imam tabele tbl_Ugovori i tbl_UgovoriDetalji u kojima upisujem podatke. E sad svakog meseca iste te podatke ponovo unosim za sledeći mesec i ubijem se "lupanja" po mišu i tastaturi pa bih hteo da taj postupak skratim i kopiram i pomoću par klika ali mi problem predstavlja kada isti kupac ima 2 aneksa koja bih hteo da spojim u jedan novi. Primera radi početkom meseca dobije rabat na proizvode ID 123, 124 i 125 a u toku meseca i na proizvod 126 (ID ugovora su prim. 222 za prvi i 333 za drugi aneks). U sledecem mesecu se oba aneksa produzavaju pa kako bih smanjio broj papira hteo bih da ta 2 selektovana ugovora iskopiram u 1 novi ali samo da dodam od datuma do datuma.

tbl_Ugovori

UgovorID - AutoNumber
Vrsta - Number * Vrsta aneksa (1 i 2)
OdDatuma - Date/Time
DoDatuma - Date/Time
KupacID - Number * Izbor kupaca
Status - Yes/No * ovo sam pokušao da iskoristim kao kriterujum za selektovanje ugovora koje hoću da kopiram (selektujem istog kupca)
Overen - Yes/No * da li je ugovor overen ili ne
Valuta - Text
Rabat - Text
KC - Text
KCM - Text
OznakaKCM - Text
Korisnik
DatumKnjizenja
KorisnikIzmenio
DatumIzmene

tbl_UgovoriDetalji

UgovorID
Vrsta
ProizvodID
Rabat
Cena
AkcijskaNetoCena
AkcijskaMPC
AkcijskiRabat
UkupniRabat

Pomoć

************
imam i formu na kojoj imam listbox kao spisak svih ugovora
INTRUDER
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)27.06.2013. u 18:34 - pre 131 meseci
Lakse bi bilo ako zakacis primer-bazu.
 
Odgovor na temu

xl_kid
Knjaževac

Član broj: 82420
Poruke: 159
77.243.16.*



Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)05.07.2013. u 06:55 - pre 131 meseci
Evo i primera. Nisam stigao ranije. Ove tabele nisu potpuno iste kao sto sam ranije opisao. Razlika je u broju polja. Ovo je ranije verzija koju sam radio i koju sam kasnije ubacio i doradjivao i dugoj aplikaciji. Sve u svemu princip rada je isti. Podaci koje hocu da kopiram su u tabeli F_Ugovori.
INTRUDER
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)05.07.2013. u 16:25 - pre 131 meseci
OK, to je bolje. Moze li I neka skica, u Excelu ili bilo kako, da ilustruje kakao to zelis da spajas ugovore?
 
Odgovor na temu

xl_kid
Knjaževac

Član broj: 82420
Poruke: 159
77.243.16.*



Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)08.07.2013. u 09:45 - pre 131 meseci
Sto se spajanja tice pokusacu da objasnim a u prilogu cu prikaciti primere u word-u. Primera radi jedan kupac ima odredjene uslove prodaje u 6. mesecu i za to je odradjen aneks ugovora i tom istom kupcu se produzavaju isti uslovi i u 7. mesecu. Svaki aneks ugovora ima svoj interni broj tako da ne mogu da iskoristim postojeci aneks i da mu promenim samo datum (svaka promena uslova prodaje mora biti potpisana i od strane kupca). Ono sto mene muci je ako jedan isti kupac u 6. mesecu ima 2 aneksa (iste vrste) kako ih spojiti u jedan aneks za 7. mesec kao novi upis osim sto bi treblo upisati nove datume. Napravio sam listu na kojoj ima pregled svih aneksa. Neka moja ideja je da cekiranjem izaberem dokumente koje hocu da ili kopiram (ako je samo jedan) ili da spojim u jedan novi (ako su vise) aneks.

A1 - "spojeni" aneks za 5. mesec
A2 - prvi aneks u 4. mesecu
A3 - drugi aneks u 4. mesecu
INTRUDER
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)08.07.2013. u 15:45 - pre 131 meseci
OK, sad je malo jasnije, ali nema brzog resenja. Iz prilozene baze ne vidim u cemu se razlikuju Ugovor i Anex. Ugovor i Anex nisu isto. Anex je dodatak na postojeci ugovor.

Moras da razjasnis sta je Ugovor, a sta Anex. Sta cini Ugovor - zaglavlje i stavke (detalji)? Sta cini Anex? Anex bi trebalo da se veze za postojeci Ugovor. Anex takodje ima Zaglavlje i Stavke (Detalji). Iz ovoga sledi da Anex i Ugovor ne mogu da budu u istoj tabeli, Anex ne moze da postoji ako ne postoji maticni Ugovor.

Odgovori na sledeca pitanja pokazace ti direktno kako treba da izgledaju tabele i sta s cim treba da se poveze.:
Sta je Ugovor?
Sta su Detalji Ugovora?
Sta je Anex?
U kakvoj su vezi Ugovor i Anex?
Sta s us Detalji Anexa?
U kakvoj su vezi Detalji Ugovora i detalji Anexa?
Ima li ogranicenja koja regulisu sta moze da bude u ugovoru a sta u anexu?

Razmisli o pitanjima i daj jasan odgovor na njih.

Dalje, ono sto si dao kao realtionships ne valja nista. Cak i ako je samo primer na brzaka, ne valja da se pravi onako, jer ide na forum gde mogu svi da vide. Naci ce se nako neiskusan ko ce poverovati da se to tako radi i naucice pogresno.

Daj odgopvore na pitanja, mozda ti onda prebacivanje i povezivanje nece ni trebati...

 
Odgovor na temu

xl_kid
Knjaževac

Član broj: 82420
Poruke: 159
77.243.16.*



Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)09.07.2013. u 07:03 - pre 131 meseci
Ugovor i detalji ugovora su samo nazivi tabela (tako sam ih nazvao ali pricam o aneksu). Kao sto si rekao ugovor i aneks nisu isto. Aneks je dopuna ugovora. Meni su ovde potrebni samo aneksi (mesecno mi se pojavi oko 150+ aneksa koje trebam produziti u sl. mesecu) kako bi ih odštampao i poslao kupcima na potpis.

Što se tiče primera u potpunosti si u pravu. Pokusacu sto pre da ga sredim i postavim sto pre.
INTRUDER
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)09.07.2013. u 14:47 - pre 131 meseci
OK, slazemo se da ugovori I anksi nisu isto. Sada znamo da protumacimo nazive tabela u postojecoj bazi. Preporucujem da ne preradjujes bazu da bi je postavio na forum, jer nece biti dobra u svakom slucaju. Problem nije naivan ali je potpuno resiv.

Hajde da za pocetak nazovemo stvari pravim imenima. Neka tabela Ugovori predstavlja - ugovore, a tabela Aneksi anekse. Imaces dakle za jedan ugovor vise aneksa. Ovako nekako:
Code:

Ugovori: {(UgovorId,int), (VaziOd, datetime),PrestajeDaVaziOd, datetime),(Klijent,int) 
         PRIMARY KEY (UgovorID)
         }
Aneksi: {(UgovorId,int), (BrojAneksa,int), (AneksVaziOd,datetime) 
         PRIMARY KEY (UgovorID,BrojAneksa)
         FOREIGN KEY (UgovorID) REFERENCES Ugovori(UgovorID)
         }

Primetite zgodan ancin da se logicki opisu tabele, kao skupovi parova (NazivKolone,TipPodatka)

Kako da resimo stavke ugovora i dodtne stavke na aneksima? Zdrav razum nam kaze da nam treba nesto kao [Stavke ugovora] I [Stavke aneksa], vezne tabele izmedju tabele Proizvodi i tabela Stavke i Aneksi. Logicki, potpuno ispravno. Fizicki, nije dobro. Zasto? Nismo kazali nigde nesto sto je logicno i podrazumeva se, toliko se podrazumeva da to ni ne spominjemo - ankesi i ugovor ne smeju da imaju iste stavke. Ako je neki proizvod pokriven ugovorom, ne mozemo imati isti taj proizvod u nekom od aneksa. Ovaj uslov se tesko moze zadovoljiti ako su Stavke ugovora i Stavke Aneksa zasebne tabele. Sledi da nekako treba cuvati stavke u istoj tabeli, bez obzira da li pripadaju ugovoru direktno ili aneksima. Resenje koje prizilazi iz ovog rezonovanja je iznenadjujuce jednostavno:

Code:

Stavke: {(UgovorId,int), (BrojAneksa,int), (ProizvodID,int), (Kolicina,int),(Rabat,decimal)
         , PRIMARY KEY (UgovorID, ProizvodID) 
            /* ovim postizemo da se jedan proizvod moze pojaviti na jednom ugovoru ne vise od jedan put */
         , FOREIGN KEY FK1: (UgovorID, BrojAnkesa) REFERENCES Aneksi (UgovorID,BrojAneksa)
            /* stavke pripadaju tabeli Aneksi! */
         , FOREIGN KET FK2: (ProizvodID) REFERENCES (Proizvodi)
         }


Neko ce se zapitati - ako stavke pripadaju aneksima, sta je sa stavkama koju pripadaju samom ugovori, pre aneksa? Uvescemo nulti aneks. Kad insertujete Ugovor, insertujte I Aneks sa rednim brojem 0. To ce biti inicijalne stavke - aneks 0 predstavlja sam ugovor. Kasnije dodajete anekse 1,2,3..N I svakom doidajete stavke. Ako napravite tabele u Accesu, videcete da imate u stavri trostepenu hijerarhiju Aneks->Ugovor->Stavka. To znaci da forma-subforma nece moci da radi za slucaj kad unosite podatke u nulti aneks, ali se to moze isprogramirati. Svako ko hoce da se nazove profesinalnim programerom mora da zna kako se programira unos podataka u trostepene hijerarhije. Dvostepena hijerarhija je forma-subforma, to zna svako ko pogleda Microsoft tutorials. ostavljam postavljacu pitanaj da se pomuci sa unosom stavki za nulti aneks.

U svakom slucaju, na nivou baze smo postigli da se lako unose stavke gde treba. Kad ih treba preneti u sledeci mesec, jednostavno sve stavke koje pripadaju jednom ugovoru prebacite u nulti aneks za sledeci mesec. Ako neke stavke ne zelite da prenesete, jednostavno ih obrisete. Ako treba da dodate nove stavke - onda prvo definisete aneks, pa za taj aneks mozete fomom i subformom da uneste dodatne stavke. Za sledeci mesec, ponovit ovo sve.

Postoje i druga resenja, verovatno, ko ima ideju slobodo napred, pa da vidimo dokle cemo stici.
Nadam se da je pomoglo.


 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
*.PPPoE-3129.sa.bih.net.ba.

Sajt: www.icentar.ba


+2 Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)10.07.2013. u 12:18 - pre 131 meseci
Prva tabela tblDokumenti:
DukumentId-int
Zakljucen-DateTime
Okoncan-DateTime
KlijenID-text;Druga strana Investitor
VrastaDokumentaID-Int
VezaSa-Int;DokumentID

U ovoj tabeli treba jos pšolja kao sto su iznos itd..
Primarni kljuc bi bio:
DokumentID

Druga tabela tblVrsteDokumenta
IDDokumenta Int
Opis text
Sadrzaj:
1-Ugovor
2-Aneks

Treca tabela tblDetalji.
IdDetalja-int
DokumentID
NazivStavke
valuta
Iznos
itd...

Ova tabela i ne treba ako aneks nema stavki.
Nisam sve procitao pa i ne znam detalje.



zxz
 
Odgovor na temu

xl_kid
Knjaževac

Član broj: 82420
Poruke: 159
77.243.16.*



Profil

icon Re: Kopiranje više podataka u istoj tabeli (Forma i SubForma)13.08.2013. u 08:34 - pre 130 meseci
Baš mi je bila gužva oko drugih stvari pa nisam stigao da odgovorim. Svidja mi se ideja Zidar ali je malkice komplikovana za mene. Sve to ok i bilo bi super da uradim po tvom predlogu ali je meni u ovom trenutku samo potrebno da odštampam određeni aneks kao i da imam evidenciju o tome da li je on potpisan (overen) od strane kupca. Što se kopiranja tiče rešio sam sledećim kodom:

'**************************************************
Private Sub cmdDupe_Click()
'On Error GoTo Err_Handler
'Purpose: Duplicate the main form record and related records in the subform.
Dim strSql As String 'SQL statement.
Dim lngID As Long 'Primary key value of the new record.

'Save any edits first
If Me.Dirty Then
Me.Dirty = False
End If

'Make sure there is a record to duplicate.
If Me.NewRecord Then
MsgBox "Izaberite podatke koje hocete da kopirate."
Else
'Duplicate the main record: add to form's clone.
With Me.RecordsetClone
.AddNew
!Vrsta = Me.Vrsta
!KupacID = Me.KupacID
!Korisnik = KorisnikID1()
!DatumKnjizenja = Date
!KC = Me.KC
!KCM = Me.KCM
!Ime = Me.Ime
'etc for other fields.
.Update

'Save the primary key value, to use as the foreign key for the related records.
.Bookmark = .LastModified
lngID = !UgovorID

'Duplicate the related records: append query.
If Me.[qry_UgovorDetalji_subform].Form.RecordsetClone.RecordCount > 0 Then
strSql = "INSERT INTO [qry_UgovorDetalji] ( UgovorID, ProizvodID, Rabat, Cena, Vrsta, AkcijskaMPC, AkcijskiRabat, UkupniRabat, AkcijskaNetoCena ) " & _
"SELECT " & lngID & " As NewID, ProizvodID, Rabat, Cena, Vrsta, AkcijskaMPC, AkcijskiRabat, UkupniRabat, AkcijskaNetoCena " & _
"FROM [qry_UgovorDetalji] WHERE UgovorID = " & Me.UgovorID & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
Else
MsgBox "Podaci glavne forme su kopirani ali nema povezanih podataka."
End If

'Display the new duplicate.
Me.Bookmark = .LastModified
End With
End If

Exit_Handler:
Exit Sub

Err_Handler:
MsgBox "Error " & err.Number & " - " & err.Description, , "cmdDupe_Click"
Resume Exit_Handler
End Sub
'**************************************************

pokušaću u skorije vreme da realizujem tvoj predlog pa vičem ako negde zaglavim.

u svakom slučaju hvala na pomoći
INTRUDER
 
Odgovor na temu

[es] :: Access :: Kopiranje više podataka u istoj tabeli (Forma i SubForma)

[ Pregleda: 3892 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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