|
[ Air Live @ 06.05.2008. 18:55 ] @
| Kako da ovo rješim.Već duže vrijeme nemogu da rješim snimanje i ponovno učitavanje stavki koje unesem za određenog kupca u datoteku.To mi treba da na nekom drugom kopjuteru učitam predračun kao zadnji record i pogledam šta je drugi zaračunao.
Ovo snimanje sam zamislio da se sve sa formi zapiše u neki txt fajl a da iz istoga očitam te podatke na fomu.
Eh sada imam problem sa subformam na koje nemogu nikako da učitam ukoliko imam više od 1 recorda odnosno više od 1 artikla.
Kako da ovo rješim Pomagajte.
Pozdrav ! |
[ domaci_a_nas @ 06.05.2008. 19:06 ] @
Zašto mora da bude txt fajl...? Možda možeš da koristiš sledeće parče koda koje koristi DAO:
Code: DBEngine.CreateDatabase Putanja, dbLangGeneral
StrSQL = "Insert into Tabela1 IN '" & Putanja & "' Select Tabela1.* From Tabela1 Where ID = " & Me!ID
CurrentDb.Execute StrSQL I tako za sve tabele koje ti se nalaze u recordsource formi i subformi. Posle te podatke možeš na isti način smestiti na drugi komp... Da li sam na dobrom putu ili opet trabunjam nešto posle par piva ? 
[ Air Live @ 06.05.2008. 19:14 ] @
Ovo treba da znači da mi uvijek pravi novu bazu i u nju creira tabelu1 sa ovim mojim podatcima po ID-u.Ne to nije to.
Meni treba da trenutne podatke sa glavne forme i subformi koje su trenutno aktivne po ID record-u budu snimljne u neku datoteku NPR .txta ne kao .mdb,znaci samo jedan kupac a ne svi kupci,odnosno samo aktivan kupac sa forme i stavke tog kupca,I da sa glavne forme kao novi ID odnosno novi kupac bude učitano u glavnu i subforme svi ti podatci koji su snimljeni.
Neznam dali sam dobro objasnio.
[ Catch 22 @ 06.05.2008. 22:48 ] @
A zar ti kad otvoriš Print Preview od te profakture (prvo moraš da kreiraš Report), ugrađena opcija na meniju "Export to MS Word" ne bi završila posao?
Time dobijaš fajl u rtf formatu...
[ Trtko @ 07.05.2008. 07:30 ] @
Evo ti mog primjera pa ako ti pase ti si samo malo prepravi
Dim imefile As String
imefile = "C:\prepis\" + Format(Date, "DD") + Format(Date, "MM") + Right(Format(Date, "YY"), 1) + P_Siford + ".TXT"
' imefile naziv txt datoteke u koju cu prepisat podatke iz tablice , naravno ti stavis polje sa forme
Dim RS As Recordset, i As Integer, str1 As String
Set RS = CurrentDb.OpenRecordset("TblZaHZZO")
Close #1
Open imefile For Output As #1
Dim s1, s2, s3, s4, s5, s6, s61, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18 As String
Dim s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30 As String
str1 = ""
Do While Not RS.EOF
' zbog kasnijeg prepisa u tablicu polja moraju biti bas određene dužine, mogao sam koristiti i ; za odvajanje
ali zbog odredjenih razloga nisam
s1 = Trim(Nz(RS.Fields("siford"), " ")) & Space(3 - Len(Trim(Nz(RS.Fields("siford"), " "))))
' tu bi ti mogao staviti ovako
s1=trim(forms!mojaforma!mojpodatak) - space(kolikajeduzinapoljautablici- ...... itd
s2 = Trim(Nz(RS.Fields("jmbg"), " ")) & Space(13 - Len(Trim(Nz(RS.Fields("jmbg"), " "))))
s3 = kodna387(Trim(Nz(RS.Fields("prezime"), " ")) & Space(20 - Len(Trim(Nz(RS.Fields("prezime"), " ")))))
s4 = kodna387(Trim(Nz(RS.Fields("ime"), " ")) & Space(15 - Len(Trim(Nz(RS.Fields("ime"), " ")))))
s5 = Trim(Nz(RS.Fields("brosiguraneosobe"), " ")) & Space(11 - Len(Trim(Nz(RS.Fields("brosiguraneosobe"), " "))))
s6 = Trim(Nz(RS.Fields("matbrosiguranika"), " ")) & Space(9 - Len(Trim(Nz(RS.Fields("matbrosiguranika"), " "))))
str1 = s1 & s2 & s3 & s4 & s5 & s6
Print #1, str1
RS.MoveNext
str1 = ""
Loop
Close #1
RS.Close
Set RS = Nothing
MsgBox " Podaci su prepisani u " + imefile
' ako zelis citati iz txt i upisivati u polja na formi ili u tablicu onda ovako
' nadam se da ces se snaci
Dim dato22 As Database
Dim rek22 As Recordset
Set dato22 = CurrentDb
Dim sqlupit22 As String
sqlupit22 = "select * from veza"
Set rek22 = dato22.OpenRecordset(sqlupit22)
rbr = 1
Dim inputdata
Open "f:\programi\veza_rac_kupac.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, inputdata
skup = Mid(inputdata, 53, 5)
imek = Mid(inputdata, 60, 25)
rek22.AddNew
rek22.Fields("sifra_kup") = skup
rek22.Fields("ime_kupca") = imek
rek22.Update
End If
Loop
Close #1 ' Close file.
rek22.Close
Set dato22 = Nothing
MsgBox "podaci su prepisani"
Pozdrav
[ Air Live @ 07.05.2008. 09:27 ] @
Evo ovako sam to ja odradio zapisivanje u txt ali nevalja jer nemogu da zapisem sve recorde sa subformi.
[ domaci_a_nas @ 07.05.2008. 10:43 ] @
Ispod svog koda napisao sam : Citat: I tako za sve tabele koje ti se nalaze u recordsource formi i subformi. Znači prekopiraj recorde iz pet tabela i posle importuj te nove tabele i rešio si problem...
[ Air Live @ 07.05.2008. 11:00 ] @
Zivot me ucio da učim iz primera pa ukoliko si za.Bitćuti zahvalan,ali ovo je snimanje u novu bazu.
[ domaci_a_nas @ 07.05.2008. 12:16 ] @
Zbog čega je snimanje u NOV txt file prihvatljivo, a snimanje u novu BAZU nije ?
[ Air Live @ 07.05.2008. 12:31 ] @
Pa zato sto je praktičnije,a kako učitavati iz baze u program,ajd da pokušamo tvoj način,nisam toliko skeptik u što će se snimati,Ako si za ajd da probamo tvoj način Snimanja i učitavanja u prokram kao zadnjeg kupca !
[ Air Live @ 08.05.2008. 19:00 ] @
Ovako ovo mi je sada cod za zapisivanje u txt datoteku :
Function Kreiraj()
Dim Rs As Recordset
Dim ObjFso As Object
Dim ObjFile
Dim Predracun As String
Predracun = Me.Ime & " " & Me.Prezime
Set ObjFso = CreateObject("Scripting.FileSystemObject")
Set ObjFile = ObjFso.CreateTextFile(Me.saveputanja, True)
ObjFile.WriteLine Me.Ime
ObjFile.WriteLine Me.Prezime
ObjFile.WriteLine Me.Adresa
ObjFile.WriteLine Me.Mjesto
ObjFile.WriteLine Me.Drzava
ObjFile.WriteLine Me.Telefon
ObjFile.WriteLine Me.NazivProizvoda
ObjFile.WriteLine Me.DatumPredracuna
ObjFile.WriteLine Me.DatumIsporuke
ObjFile.WriteLine Me.NacinPlacanja
ObjFile.WriteLine Me.Iznos
ObjFile.WriteLine Me.Avans
ObjFile.WriteLine Me.Popust
ObjFile.WriteLine Me.UplataOprema
ObjFile.WriteLine Me.Korpus
ObjFile.WriteLine Me.Vrata
ObjFile.WriteLine Me.Staklo
'ObjFile.WriteLine Me.Slika
ObjFile.WriteLine Me.Realizovano
Set Rs = Forms![frmKupci]![frmStavkeKorpus].Form.RecordsetClone
ObjFile.WriteLine "StavkeKorpus"
Do While Not Rs.EOF
ObjFile.WriteLine Rs.Fields(1) 'Ovdje nastaje problem nece da očita sve kolone i nazive iz forme već sad čita samo prvu kolonu
ObjFile.WriteLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeOprema].Form.RecordsetClone
ObjFile.WriteLine "StavkeOprema"
Do While Not Rs.EOF
ObjFile.WriteLine Rs.Fields(1)
ObjFile.WriteLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeVrata].Form.RecordsetClone
ObjFile.WriteLine "StavkeVrata"
Do While Not Rs.EOF
ObjFile.WriteLine Rs.Fields(1)
ObjFile.WriteLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeStaklo].Form.RecordsetClone
ObjFile.WriteLine "StavkeStaklo"
Do While Not Rs.EOF
ObjFile.WriteLine Rs.Fields(1)
ObjFile.WriteLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
ObjFile.Close
MsgBox "Predračun je uspješno zapisan !", vbInformation, "Poruka !"
End Function
Ovomije sad cod za ucitavanje na forme i subforme :
Function Citaj()
Dim Rs As Recordset
Dim ObjFso As Object
Dim ObjFile
Dim Predracun As String
Predracun = Me.Ime & " " & Me.Prezime
Set ObjFso = CreateObject("Scripting.FileSystemObject")
Set ObjFile = ObjFso.OpenTextFile(Me.prputanja)
ObjFile.ReadLine Me.Ime
ObjFile.ReadLine Me.Prezime
ObjFile.ReadLine Me.Adresa
ObjFile.ReadLine Me.Mjesto
ObjFile.ReadLine Me.Drzava
ObjFile.ReadLine Me.Telefon
ObjFile.ReadLine Me.NazivProizvoda
ObjFile.ReadLine Me.DatumPredracuna
ObjFile.ReadLine Me.DatumIsporuke
ObjFile.ReadLine Me.NacinPlacanja
ObjFile.ReadLine Me.Iznos
ObjFile.ReadLine Me.Avans
ObjFile.ReadLine Me.Popust
ObjFile.ReadLine Me.UplataOprema
ObjFile.ReadLine Me.Korpus
ObjFile.ReadLine Me.Vrata
ObjFile.ReadLine Me.Staklo
'ObjFile.ReadLine Me.Slika
ObjFile.ReadLine Me.Realizovano
Set Rs = Forms![frmKupci]![frmStavkeKorpus].Form.RecordsetClone
ObjFile.ReadLine "StavkeKorpus"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeOprema].Form.RecordsetClone
ObjFile.ReadLine "StavkeOprema"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeVrata].Form.RecordsetClone
ObjFile.ReadLine "StavkeVrata"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeStaklo].Form.RecordsetClone
ObjFile.ReadLine "StavkeStaklo"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
ObjFile.Close
MsgBox "Predračun je uspješno učitan !", vbInformation, "Poruka !"
End Function
Ovaj cod za učitavanje mi nešto neće,ne znam zašto !
[ Air Live @ 08.05.2008. 20:15 ] @
Pola cod-a radi a pola ne :
Function Citaj()
Dim Rs As Recordset
Dim ObjFso As Object
Dim ObjFile
Dim Predracun As String
Predracun = Me.Ime & " " & Me.Prezime
Set ObjFso = CreateObject("Scripting.FileSystemObject")
Set ObjFile = ObjFso.OpenTextFile(Me.prputanja)
Me.Ime = ObjFile.ReadLine
Me.Prezime = ObjFile.ReadLine
Me.Adresa = ObjFile.ReadLine
Me.Mjesto = ObjFile.ReadLine
Me.Drzava = ObjFile.ReadLine
Me.Telefon = ObjFile.ReadLine
Me.NazivProizvoda = ObjFile.ReadLine
Me.DatumPredracuna = ObjFile.ReadLine
Me.DatumIsporuke = ObjFile.ReadLine
Me.NacinPlacanja = ObjFile.ReadLine
Me.Iznos = ObjFile.ReadLine
Me.Avans = ObjFile.ReadLine
Me.Popust = ObjFile.ReadLine
Me.UplataOprema = ObjFile.ReadLine
Me.Korpus = ObjFile.ReadLine
Me.Vrata = ObjFile.ReadLine
Me.Staklo = ObjFile.ReadLine
'ObjFile.ReadLine Me.Slika
Me.Realizovano = ObjFile.ReadLine
' Odavde dole nece da radi
Set Rs = Forms![frmKupci]![frmStavkeKorpus].Form.RecordsetClone ' Odavde dole nece da radi
ObjFile.ReadLine "StavkeKorpus"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeOprema].Form.RecordsetClone
ObjFile.ReadLine "StavkeOprema"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeVrata].Form.RecordsetClone
ObjFile.ReadLine "StavkeVrata"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Forms![frmKupci]![frmStavkeStaklo].Form.RecordsetClone
ObjFile.ReadLine "StavkeStaklo"
Do While Not Rs.EOF
ObjFile.ReadLine Rs.Fields(1)
ObjFile.ReadLine Rs.Fields(2)
Rs.MoveNext
Loop
Rs.Close
ObjFile.Close
MsgBox "Predračun je uspješno učitan !", vbInformation, "Poruka !"
End Function
[ Zidar @ 08.05.2008. 20:37 ] @
Ama ljudi, ponovo pitam -koja je svrha snimiti nesto iz baze u txt fajl, ili u drugu bazu, pa onda ucitavs to isto nazad? Zasto ga ucitavas nazad, kad vec postoji u bazi (odatle si ga poslao u TXT fajl). Mora da imas neki razlog, a ja nisam dovoljno pametan da ga shvatim. Zastom se sve ovo radi? Ono sto Nikola kaze je daleko jednostavnije, ali ima i od toga jednostavnije, samo da znamo sta zapravo pokusavamo da uradimo.

[ domaci_a_nas @ 08.05.2008. 20:52 ] @
Lepo reče čovek Citat: To mi treba da na nekom drugom kopjuteru učitam predračun kao zadnji record i pogledam šta je drugi zaračunao. Nisam se nešto udubio u tematiku, ali za kopiranje određenih recorda ja bih ovako kao što napisah. Sigurno će imati pet puta manje koda...
[ Air Live @ 08.05.2008. 22:04 ] @
Citat: Ama ljudi, ponovo pitam -koja je svrha snimiti nesto iz baze u txt fajl, ili u drugu bazu, pa onda ucitavs to isto nazad? Zasto ga ucitavas nazad, kad vec postoji u bazi (odatle si ga poslao u TXT fajl). Mora da imas neki razlog, a ja nisam dovoljno pametan da ga shvatim.
Pa kad si toliko navalio da saznas o cemu se zapravo radi,Program radi predračune Američkih plakara za kupce gdje ima ugovore i svasta nesta,Eh kad korisnik napravi neki predračun svi podatci vise nisu moguci prepravljati bez odobrenja direktora odnosno administratorske lozinke koja se krije negdje u regeditu kao kripcija,eh kada direktor kaze radniku de mi pošalji predračun kupca tog i tog da vidim šta si muljao i zaračunavao da ti mogu odbiti od plate,tada on to nemože izvršiti jer nema tu opciju,a direktor naravno sjedi doma svojoj kuci i čeka e-mail.
Eto nadam se da si zadovoljan mojim odgovorom i da sva misterija oko ovog je rješena hehehe.....
Ako mozes pomozi mi jos oko ovog pola cod-a sto mi nece da radi,imas cod koji snima odlično,imas cod koji čita i imaš datoteku kako izgleda snimljeni predračun,znači imaš sve uslove da mi pomogneš ;-)
Eto Ljep pozdrav !!!
[ Zidar @ 09.05.2008. 16:43 ] @
Ih, pa bas da odbijes coveku od one crkavice..... To je valjda zato sto su plakari americki, a u americi piju krv radnicima, pa sto ne bi i mi, hej, plakari su americki, na kraju krajeva, pa da budemo kao amerikanci. Sve to neko odozgo vidi...
Ne izgleda da je moguce napisati kod koji ucitava iz text fajla i salje podatke u odgovarajuce tabele zato sto je izlazni tezxt fajl lose strukturiran. Kad pogledas text fajl, tesko je reci sta je sta i odakle dolazi, da bi se 'vratilo' na pravo mesto. Zato bih potpuno batalio put kojim ste posli, jer svi zajedno, uz veliki trud i napor i neosporno znanje, niste stigli gde se zeli stici. Mozda pravac puta nije dobar?
Ako sve podatke koje zelis da izvezes, pokupis u jedan flat kveri, kao za report, i izvezes taj set podataka kao delimited text, mozda budes bolje srece.
Pogledaj zakaceni fajl. Videces kverije qryStavkeKorpus, qryStavkeOprema, qryStavkeStaklo, qryStavkeVrata. Oni svi imaju istu strukturu. Obrati paznju na kolonu "Tabela". To nam kazuje koji podatak odakle dolazi. Onda kveri qryUNION pokupi sve ove kverije u jedan dataset. Ovo je moguce jer imaju istu strukturu. Onda qryExport pokaze podatke za odabranog kupca.
kako se exportuje kveri ili tabela u comma delimited fajl? Ako probas rucno da exportujes neku tabelu, aktivirace se Import/Export wizard, gde specificras sat i kkao izvozis. Ako kliknes Advanced pa Save AS, onda toj specifikaciji mozes da dodelis neko ime. ISta specifikacija se koristi i za import i za export. programski se import/export rade kroz DoCmd.TransferText Imas odlican HELP za TransferText. Pogledaj i bice jasnije.
Pogledaj modul qryExport. Tu se desava cela akcija. Tamo ces videti nekoliko funkcija. Funkcije ExportPredracun, ImportPredracun i SetUpQryExport su specificne za ovu bazu. Sve ostale su genericke i mogu se koristiti bilo gde. U sve funkcije treba dopisati error handling. Treba na formi postaviti dugme, koje cita KupacID i salje ga jednoj od funkcija (ExportPredracun, ExportPredracun)
Cela ideja je da se exportuje/importuje flat dataset, flat znac 'denormalizovan'. Pogledaj tabelu tblIMPORT. Tu imas sve podatke koje si exportovao/importovao. Sam ces ukapirati kako se odastle mogu vratiti podaci u postojece tabele, ili gde vec treba da idu.
Ovo sto sam napisao je kombinacija onoga sto vi radite - export import, i onoga sto je Nikola predlozio. Za razliku od Nikole, ovde se sve desava u jednom istom Access fajlu.
Ja jos uvek ne razumemcemu kruzni tok, izvezes pa opet uvezes. A mozda je previse security zakomplikovalo stvar? Radnik treba da ucita ono sto iance ne sme da vidi. Zanimljivo ;-)
[ Getsbi @ 09.05.2008. 18:41 ] @
>...Ne izgleda da je moguce napisati kod koji ucitava iz text fajla i salje podatke u odgovarajuce tabele zato sto je izlazni tezxt fajl lose strukturiran. Kad pogledas text fajl, tesko je reci sta je sta i odakle dolazi, da bi se 'vratilo' na pravo mesto.....<
Za potrebe ovih plakara sam u skorije vreme (ne znam tačno na kojem forumu) ispravljao neke .xml datoteke sa konkretnim podacima koje su donošeni iz vana i uspešno ih importovao u Access .mdb tabele. Ne razumem zašto .txt fajlovi kad su ljudi izmislili struktuirane fajlove za prenos podataka tipa .xml. Jednostavno je i importovanje i eksportovanje. Gospodin direktor može jednako uspešno da čita .xml datoteku (čak i lakše jer mu piše šta je šta) nego tekstualni fajl. Ako treba da ispravlja podatke predračuna i vraća ih nazad samo mu treba objasniti da to uradi između tagova (da ih ne obriše).
Inače nešto ranije, možda negde na početku ovog projekta kritikovao sam model i dao konkretan predlog ali me kolega nije poslušao. Više podformi vezano za jednu formu nije neizvodljivo ali takvo komplikovanje treba da ima opravdanja u modelu.
No sve jedno. Nisam otvarao ovaj Zidarev fajl ali iz teksta mi se čini dobro zamišljeno. Ako ne uspe treba pokušati sa gore navedenim .xml fajlovima.
[ Air Live @ 09.05.2008. 20:30 ] @
Uhhhhhhhh e bas si ga sad zakomplikovao stari "Zidar".Tek sad mi nista nije jasno.Mislim da cu morati ipak se obratiti ZXZ-u jer jedini je ukapirao i izveo snimanje u txt fajl.Samo još učitavanje i to je to !
[ domaci_a_nas @ 09.05.2008. 23:49 ] @
Eto pa uči iz primera  Čini mi se da Zidarev kod nije radio, a mislim da je razlog to što je za polje IDKupac u svim podtabelama defaultvalue bio 0. Ni moj kod neće raditi dok se to ne izmeni. Prebacio sam sve objekte koji su relevantni u tu novu privremenu bazu i u njoj se mogu direktno pogledati podaci. Izbacio sam filedialog iz igre jer me je ometao oko testiranja, ali mislim da ti je ovo sasvim dovoljna osnova da završiš posao.
[ Air Live @ 10.05.2008. 18:26 ] @
Hvala na ponudenim odgovorima koji su bili sve osim onog sto meni zaist treba,samo mogu da se zahvalim "Doktoru za Cod" a moliobih i one kiji dijele isto misljenje kao i ja,a taj doktor se nalazi na ovoj adresi : http://www.icentar.com/showthread.php?t=8462&page=3
Čovjek pod imenom ZXZ.
Ovim putem se zahvaljejem !
Svaka čast majsore ;-)
[ domaci_a_nas @ 10.05.2008. 20:50 ] @
Da si umeo bolje da objasniš šta ti treba možda bi i dobio bolje rešenje. Nisam siguran da si dovoljno pogledao ponuđena rešenja, pošto mislim da baš ovo koje sam ti ja poslao radi sasvim zadovoljavajuće. Ali dobro, neko može da odvoji sat vremena da poomogne nekome, a taj ne može da odvoji tri minuta da pogleda...
[ Air Live @ 10.05.2008. 22:04 ] @
Hvala svima,ja pozdravljam i vasa rješenja samo se trenutno nisam mogao pronaći u njima,sorry.Hvala vam još jednom na izdvojenom vremenu i ljep pozdrav !
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|