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

dinamicki import excela u access 2003

[es] :: Access :: dinamicki import excela u access 2003

[ Pregleda: 2903 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sparc
Sladjan Parc

Član broj: 65760
Poruke: 134
*.static.isp.telekom.rs.



Profil

icon dinamicki import excela u access 200326.06.2009. u 08:49 - pre 179 meseci
Imam jednu tabelu u accessu i jedan excel fajl koji u prvom redu sadrzi nazive kolona.
Importovanje i linkovanje (docmd.tansferspreadsheet) kroz VBA mi nije problem.
Moj problem je u tome da neko ko salje excel tabele ne popuni korektno
nazive u excel tabeli, a ni redosled kolona ne ispostuje (ovo zadnje nije bitno ako
ispostuje nazive).
Kako proveriti nazive kolona u access tabeli i importovanoj ili lonkovanoj
excel tabeli. Odnosno postoji li nacin da se napravi nekakvo mapiranje
naziva kolona iz obe tabele pre nego sto se podaci prebace.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: dinamicki import excela u access 200326.06.2009. u 09:56 - pre 179 meseci
Mislim da ne postoji klasično mapiranje koje si viđao po operativnim sistemima. Trebalo bi napisati VBA kod koji će da uporedi strukturu te dve tabele.
 
Odgovor na temu

sparc
Sladjan Parc

Član broj: 65760
Poruke: 134
*.static.isp.telekom.rs.



Profil

icon Re: dinamicki import excela u access 200326.06.2009. u 10:35 - pre 179 meseci
Kako u VBA doci do naziva kolina obe tabele i njihovog opisa, na primer: text(25)
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: dinamicki import excela u access 200326.06.2009. u 11:09 - pre 179 meseci
Nisam za svojim računarom. Ako niko drugi ne odgovori, potrudiću se večeras da ti dobavim parče koda koje se bavi strukturom tabele. Da ne bih grešio u sintaksi.
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: dinamicki import excela u access 200326.06.2009. u 14:10 - pre 179 meseci
Evo kako se moze uraditi mapiranje:

Kao i obicno, resenje je u tabelama i meta-podacima. Ko razume shvatice, a moze otprilike ovako:

Imas tabelu u Accesu, tblMyAccessTable
Imas linkovanu tabelu Excel_Tabela. Ona se unutar Accesa zove “Excel_TAbela”, a linkuje se na excel fajl sa proizvoljnim imenom. Sta ce ti Import ako moze link?
Imas i jos jednu tabelu, zove se sysMapiranje.Tabela sysMapiranje izgleda ovako:


Za obe kolone otvori Lookup tab i napravi da je
Display Control = Combo box,
Rowsource Type = Field List
Row source = tabela cije kolone hoces da citas
Ovako nekako:




Ne zaboravi da stavis u sysMapiranje Primery key po obe kolone:


Kada otvoris tabelu sysMApiranje, mozes da radis ovakve stvari:




Na kraju ces imati nesto sto izgleda ovako:


Sad samo ostaje da citanjem tabele sysMapiranje napravis IMPORT INTO izraz koji ces upotrebiti za prebacivanje podataka iz linkovane excel tabele u access tabelu.

Ceo postupak bi zigledao ovako:

1. Osvezi link za excel tabelu
2. Uradi mapiranje
3. Klikni na dugme koje ce da napravi “IMPORT INTO….”
4. Klikni na dugme koje ce da izvrsi “IMPORT INTO”

Korake 1 i 2 imas u ovoj poruci, a za 3 i 4 moze neko da ti pomogne ko voli da programira.

:-)

[Ovu poruku je menjao Zidar dana 26.06.2009. u 15:24 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

sparc
Sladjan Parc

Član broj: 65760
Poruke: 134
*.static.isp.telekom.rs.



Profil

icon Re: dinamicki import excela u access 200326.06.2009. u 14:33 - pre 179 meseci
Hvala na odgovoru.
Ovo je ok, za access tabelu znam koja su nazivi kolona (bilo bi glupo da ne znam) i
koji je tip podataka. Potrebno mi je da za excel_link tabeli saznam koji su
nazivi kolona i koji je tip podataka, da pre nego sto pocnem sa punjenjem sysMapiranje
napunim lookup excelpolje sa nazivima kolona iz excel_link, a ako se moze saznati
i tip podatka bilo bi bomba. Sve ostalo znam da uradim.

 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: dinamicki import excela u access 200326.06.2009. u 16:04 - pre 179 meseci
Nazive kolona iz obe tabela cita sama tabela. Kad si stavou u Lookup da je row source Field List, dobices nazive kolona kad otvoris combo. Ono sto se u Accesu vidi kao Excel_Tabela, moze se linkovati na bilo koji Ecel van accesa, u bilo kom momentu. Kad si to uradio, tabela msysMapping ce na opisan naci automatski citati nazive kolona.

Sto se tipova podataka tice, sa Excelom nikad nisi siguran. Kad podaci idu zimedju Excela i Accesa, tu radi enki automatizam nad kojim enmas kontrolu uopste. JET/Access/Excel, svaki od njih tumaci podatek kako najbolje ume i zna, i ti tu ne mozes nista. Preporuka je da od onih koji ti daju Excel fajlove, zahtevas bar minimum discipline, inace nece pomoci nikakvo mapiranje.
 
Odgovor na temu

Trtko
Koprivnica

Član broj: 69494
Poruke: 695
87.252.143.*



+8 Profil

icon Re: dinamicki import excela u access 200328.06.2009. u 09:37 - pre 179 meseci
Sto se tice tipa podataka, ako prepisujes iz VBA koda onda ispitujes
s isnumeric() , isdate(), pa tako znas koji je to tip podataka.

evo ti dio koda s primjerom prepisa u bazu

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:\banprep\privremena.xls"
objexcel.Workbooks.Open (lnkput)


For j = 1 To 1000

konto = Trim(objexcel.Cells(j, 1).Value)

datum = Left(Trim(konto), 10)

If Left(konto, 15) = "Primatelj robe:" Then
If Len(konto) > 20 Then
Text2 = konto


rek22.AddNew
rek22.Fields("polje") = konto
rek22.Update

End If
End If

If IsDate(datum) Then

' Text2 = konto


rek22.AddNew
rek22.Fields("polje") = konto
rek22.Update
End If
Next j


rek22.Close
Set dato22 = Nothing

objexcel.Application.DisplayAlerts = False
objexcel.Application.Quit
objexcel.Application.DisplayAlerts = True
 
Odgovor na temu

[es] :: Access :: dinamicki import excela u access 2003

[ Pregleda: 2903 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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