|
[ tifoza @ 06.04.2010. 19:08 ] @
| Trazio sam resenje za svoj problem na forumu ali sve sto sam nasao je mnogo opsirno.
Meni treba jednostavno resenje.
Imam tabelu u excelu sa podacima koja u razlicitim celijama ima podatke koje treba da ucitam u polja forme koja ce to posle zapisati u tabelu.
Meni ne bi bio problem da to nisu razlicite celije i stranice, ali ovako mi treba pomoc.
Treba mi kod ili drugo resenje.
Excel
Sheet1 (A2), (B10), (D4)
Sheet2 (B4)
Iz ovih celija podaci trebaju da se upisu u formu ( LINK ) u Access bazi excelIMPORT.accdb
Napominjem da je excel fajl privremenog tipa i posle iscitavanja podataka u upisa u bazu nije bitan.
Evo tabele i baze u prilogu.
[Ovu poruku je menjao tifoza dana 06.04.2010. u 20:27 GMT+1] |
[ Trtko @ 06.04.2010. 19:16 ] @
Evo ti kod a ti ga prepravi po svojoj potrebi
konto = objexcel.Cells(j, 1).Value ' bi bila celija A1
znaci da trebas iz celije C,10 ---> konto = objexcel.Cells(3, 10).Value ---- itd
Dim dato22 As Database
Dim rek22 As Recordset
Set dato22 = CurrentDb
Dim sqlupit22 As String
sqlupit22 = "select * from tblprep"
Set rek22 = dato22.OpenRecordset(sqlupit22)
kolona = 1
Set objexcel = CreateObject("Excel.Application")
lnkput = "c:\program files\baan\tmp\privremena.xls"
dput = Dir(lnkput)
If Len(dput) < 3 Then
MsgBox "NE POSTOJI EXCEL TABLICA " + PPopen
Exit Sub
End If
objexcel.Workbooks.Open (lnkput)
For j = 1 To 1000
konto = objexcel.Cells(j, 1).Value
rbr = Nz(Trim(Mid(konto, 1, 4)), 0)
narudzba = Trim(Mid(konto, 6, 11))
rad_nal = Trim(Mid(konto, 18, 6))
kupac = Trim(Mid(konto, 25, 21))
dat_izd = Trim(Mid(konto, 47, 10))
dat_got = Trim(Mid(konto, 58, 10))
kolicina = Trim(Mid(konto, 69, 7))
kvaliteta = Trim(Mid(konto, 77, 8))
val1 = Trim(Mid(konto, 86, 8))
tezina = Trim(Mid(konto, 95, 7))
str1 = Trim(Mid(konto, 103, 6))
vr1 = Trim(Mid(konto, 110, 7))
str2 = Trim(Mid(konto, 118, 6))
vr2 = Trim(Mid(konto, 125, 7))
str3 = Trim(Mid(konto, 133, 6))
vr3 = Trim(Mid(konto, 140, 7))
opis = Trim(Mid(konto, 148, 13))
sif_pred = Trim(Mid(konto, 162, 12))
kizp = Trim(Mid(konto, 175, 4))
If IsDate(dat_izd) Then
rek22.AddNew
rek22.Fields("rbr") = rbr
rek22.Fields("narudzba") = narudzba
rek22.Fields("Rad_nal") = rad_nal
rek22.Fields("kupac") = kupac
rek22.Fields("dat_izd") = dat_izd
rek22.Fields("dat_got") = dat_got
rek22.Fields("kolicina") = kolicina
rek22.Fields("kvaliteta") = kvaliteta
rek22.Fields("val") = val1
rek22.Fields("tezina") = tezina
rek22.Fields("str1") = str1
rek22.Fields("vr1") = vr1
rek22.Fields("str2") = str2
rek22.Fields("vr2") = vr2
rek22.Fields("str3") = str3
rek22.Fields("vr3") = vr3
rek22.Fields("opis") = opis
rek22.Fields("sif_pred") = sif_pred
rek22.Fields("kizp") = kizp
rek22.Update
End If
Next j
rek22.Close
Set dato22 = Nothing
objexcel.Application.DisplayAlerts = False
objexcel.Application.Quit
objexcel.Application.DisplayAlerts = True
MsgBox "Podaci su prepisani"
SUBprep.Requery
[ tifoza @ 06.04.2010. 19:22 ] @
ovo se zove brza podrska ....
Trtko, imas li primer uz ovo. cisto da vidim kako to radi ...
[ Trtko @ 07.04.2010. 08:27 ] @
Pa program je malo kompleksniji pa ti ga nemogu poslat jel se nebudes znao snaci.
Jel znaš programirati u VB ????
Napraviš si jednu formu , stavi dugme i na njegov ONClick , prepisi ovaj dolje kod , ne cijeli ,
za excel putanju postaviš svoju excel datoteku , za tablicu postaviš svoju tabelu , a vjerojatno
znaš koja polja kamo prepisujes.
Nemogu otvoriti tvoj excel jel ne koristim office 2007
Malo se poigraj , mjenjaj kod, pa če ti sve biti jasno
Dim dato22 As Database
Dim rek22 As Recordset
Set dato22 = CurrentDb
Dim sqlupit22 As String
sqlupit22 = "select * from tabelaukojuprepisujem"
Set rek22 = dato22.OpenRecordset(sqlupit22)
Set objexcel = CreateObject("Excel.Application")
lnkput = "c:\gdjemijeexcel\excel.xls"
objexcel.Workbooks.Open (lnkput)
' uzimaš iz odredjenih polja iz excela
a1 = objexcel.Cells(1, 1).Value
b10 = objexcel.Cells(2, 10).Value
d4 = objexcel.Cells(4, 4).Value
' upisuješ u tablicu polja iz excela
rek22.AddNew
rek22.Fields("polje1") = a1
rek22.Fields("polje2") = b10
rek22.Fields("polje3") = d4
rek22.Update
' zatvaraš tablicu i excel datoteku
rek22.Close
Set dato22 = Nothing
objexcel.Application.DisplayAlerts = False
objexcel.Application.Quit
objexcel.Application.DisplayAlerts = True
MsgBox "Podaci su prepisani"
evo to ti je to , još moraš uključiti i referencu za excel
a za sheet2,sheet3 mislim da ide nekako ovako, al nisam siguran, moraš u helpu provjeriti
a1 = objexcel.sheet2.Cells(1, 1).Value
Pozdrav
[ tifoza @ 08.04.2010. 07:11 ] @
Ja ću poigrati se sa ovim kodom.Jasno mi je kako kod radi, samo da ga uskladim sa svojom aplikacijom.
Mislim da ne bi trebalo biti problema, a ako bude ja ću javiti.
Da li mogu da dobijem tvoj IM ili mail ?
Hvala na pomoći i pozdrav
tifoza
[ Zoran.Eremija @ 08.04.2010. 10:17 ] @
Da li ovo resenje sa minimum koda moze da pomogne?
[ Trtko @ 08.04.2010. 12:44 ] @
Gledam tvoj excle fajl tifoza, pa tko ga tako popunjava, rastrkano , moras postaviti ljudima neke norme
Celije pod A opis polja ..... a1-jmbg , a2-ime , a3-prezime itd ... a ispod toga onda podaci
onda nebi imao problema sa uvozom podataka, ljepo bi iskoristio accesov vizard ..
[ savetnik.org @ 08.04.2010. 13:31 ] @
Što kaže Trtko i u pravu je, pa mi dade jednu ideju. Pošto ti verovatno treba da izvučeš te podatke iz velikh i već napravljenih šitova što prvo ne napraviš novi šit i povučeš u njega podatke po redosledu kakav ti odgovara pa na mnogo lakši način to uvezeš u access.
[ tifoza @ 09.04.2010. 14:33 ] @
Citat: Trtko: Gledam tvoj excle fajl tifoza, pa tko ga tako popunjava, rastrkano , moras postaviti ljudima neke norme
Celije pod A opis polja ..... a1-jmbg , a2-ime , a3-prezime itd ... a ispod toga onda podaci
onda nebi imao problema sa uvozom podataka, ljepo bi iskoristio accesov vizard ..
To je samo radi primjera kako bih došao do koda koji mi je potreban
Ja sam pokušao da napravim drugi excel fajl koji mi je to slagao kako treba i onda sam taj fajl linkovao ka formi u Accesu.
Problem je sto svaki put moras da otvoriš taj excel i snimiš fajl kako bi on zapamtio podatke.
Onda forma iz excela vidi to sve kako treba, ali hoću da to zaobiđem.
Radi se o sledećem.
Postoji obrzac za poresku prijavu na sajtu Poreske uprave koja se može exportovati u excel ili pdf.
Meni treba da te podatke povučem u svoju aplikaciju jer ih moram po zakonu čuvati u svojoj bazi podataka.
Evo primjera obrazca, čisto da vidite o čemu se radi.
[ Zoran.Eremija @ 09.04.2010. 16:41 ] @
Jos da ste naveli koji podatak gde ide?
[ tifoza @ 10.04.2010. 07:42 ] @
Pa treba da ide redom u jednu tabelu.
Zbog toga sa i dao onaj prvi primer sa par promjnjivih a ne celi ovaj obrazac koji mi u suštini treba.
Ovo što si ti napravio nije mi jasno kako radi.
Ima tri linkovane tabele koje su konvertovane u novu tabelu ...
Mislim da je Trtko dao najbliže rješenje šta meni treba, samo da provalim kod.
Zabaviću se time preko vikenda pa ću javiti šta sam uradio.
[ tifoza @ 13.04.2010. 14:52 ] @
Ok evo ovo sad radi ali i dalje imam problem sa drugim Sheat-om
Folder je C:\00\Podaci.xls
======================================================
Private Sub Command11_Click()
Dim dato22 As Database
Dim rek22 As Recordset
Set dato22 = CurrentDb
Dim sqlupit22 As String
sqlupit22 = "select * from Podaci"
Set rek22 = dato22.OpenRecordset(sqlupit22)
Set objexcel = CreateObject("Excel.Application")
lnkput = "c:\00\Podaci.xls"
objexcel.Workbooks.Open (lnkput)
' uzimaš iz odredjenih polja iz excela
a1 = objexcel.Cells(1, 1).Value ' Prvi broj = CELIJA *=(1,2,3,4), Drugi broj = KOL0NA (A,B,C,D)
b4 = objexcel.Cells(2, 2).Value
c3 = objexcel.Cells(3, 3).Value
d4 = objexcel.Cells(4, 4).Value
MsgBox " A polje A1 = " & a1
MsgBox " B polje B3 = " & b4
MsgBox " C polje C3 = " & c3
MsgBox " D polje D4 = " & d4
' upisuješ u tablicu polja iz excela
'rek22.AddNew
'rek22.Fields("polje1") = a1
'rek22.Fields("polje2") = b10
'rek22.Fields("polje3") = d4
'rek22.Update
' zatvaraš tablicu i excel datoteku
'rek22.Close
'Set dato22 = Nothing
objexcel.Application.DisplayAlerts = False
objexcel.Application.Quit
objexcel.Application.DisplayAlerts = True
MsgBox "Podaci su prepisani"
'evo to ti je to , još moraš ukljuèiti i referencu za excel
'a za sheet2,sheet3 mislim da ide nekako ovako, al nisam siguran, moraš u helpu provjeriti
'c1 = objexcel.sheet2.Cells(2, 4).Value
End Sub
======================================================================
[ tifoza @ 13.04.2010. 18:47 ] @
I konačno....
evo ga radi....
Hvala Trtku i ostalim na pomoći
[ Trtko @ 13.04.2010. 19:17 ] @
I drugi put tifoza.
vidis kako je to sad jednostavno
[ tifoza @ 13.04.2010. 20:50 ] @
Da, a evo i malo sam se igrao pa neka se nekom nađe
Isto ovo samo ima opciju da pronađeš fajl kroz BROWSE opciju....
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|