Toon posts:

[Access?] Importeren meerdere excel bestanden

Pagina: 1
Acties:
  • 1.555 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Voor 'n collega moet ik uitzoeken hoe je het eenvoudigst ongeveer 200 excel bestanden kunt importeren.
Waar het mee gebeurt maakt niet echt uit, maar ik zat zelf te denken aan Access. Het excel bestand wordt verstuurd naar 200 mensen die het dan weer ingevuld terugsturen. Normaal zou dit via een websurvey gebeuren maar dat is nu niet mogelijk. Enig idee hoe ik dit het beste aan kan pakken?

Het excel bestand zal ik locken zodat alleen op vaste plaatsen antwoorden zijn gegeven en de naam van het bestand zal zijn test.xls t/m test(200).xls

Ik heb al geprobeerd te zoeken maar geen soelaas.

  • Boss
  • Registratie: September 1999
  • Laatst online: 07:46

Boss

+1 Overgewaardeerd

Wat heb je al geprobeerd? Je kan toch Excel bestanden koppelen / importeren in Access?

Als je ze automatisch allemaal 1 voor 1 wilt laten inlezen moet je gaan programmeren, maar het kan zeker wel in Access.

Wat je evt. ook kan doen, aangezien je ze toch 1 voor 1 terug krijgt:
- noem de sheets altijd 'import.xls'
- koppel de sheet import.xls in Access
- maak een query die de inhoud van de gekoppelde sheet aan een tabel toevoegd
Nu moet je steeds als je een sheet terug krijgt hem import.xls noemen. Importeer de gegevens naar de tabel met de query en hernoem hem weer naar iets anders.
Volgende sheet -> zelfde verhaal.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Koppelen was bekend, alleen om dat 200x te doen heb ik (of mijn collega) niet echt zin in. Hoopte dat iemand een andere oplossing had.

Programeren in Access is iets te hoog gegrepen. Budget om het te laten programeren heb ik ook niet aangezien het voor een stagaire is.

[ Voor 34% gewijzigd door Verwijderd op 09-11-2003 13:26 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 07:46

Boss

+1 Overgewaardeerd

Als het toch een stagaire is... laat hem lekker koppelen...

Je kan overignes ook met copy-paste records overnemen van Excel naar Access. Moeten de velden wel 1-op-1 overeenkomen.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Boss schreef op 09 november 2003 @ 13:58:
Als het toch een stagaire is... laat hem lekker koppelen...
Haar ;)

Verwijderd

Ik denk dat je haast niet onder een stukje programmeerwerk uitkomt.
(Macro in Acces)

:X

[ Voor 11% gewijzigd door Verwijderd op 09-11-2003 14:07 ]


Verwijderd

Topicstarter
Dat dacht ik ook al, want ik het ben het knopje "import all excel-documents" nog niet tegengekomen :'(
Hoopte alleen dat iemand anders dit al voor mij had opgelost zodat ik 'n goede indruk maak.

Verwijderd

Hoeveel velden moeten er geimporteerd worden? O-)

Verwijderd

Topicstarter
Eén tabel is voldoende en ongeveer 70 regels. Kan dit zo instellen dat bijvoorbeeld a1 t/m a60 moeten worden geimporteerd (of a1 t/m DA1 indien handiger).

[ Voor 75% gewijzigd door Verwijderd op 09-11-2003 14:59 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 07:46

Boss

+1 Overgewaardeerd

Sowieso moet je de gegevens in tabelvorm hebben, met de verschillende velden in verschillende kolommen. Dus niet in verschilende rijen, dan gaat het mis.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Boss schreef op 09 november 2003 @ 16:50:
Sowieso moet je de gegevens in tabelvorm hebben, met de verschillende velden in verschillende kolommen. Dus niet in verschilende rijen, dan gaat het mis.
Ik heb maar een kolom nodig waarin 70 vragen worden beantwoord (varierend van 1 t/m 5) dus ik heb volgens mij niet meer kolommen nodig :?

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 27-08 14:13
In mijn ogen zal je niet ontkomen aan een stuk VBA.

1) Lees alle files in een bepaalde dir
2) Lees excel data mbv recordset
3) Insert in database tabel

Hieronder even wat losse routine's mbt bovengenoemde onderdelen :

1) Onderstaand een standaard lees routine die de namen Excel files leest in aangegeven dir
code:
1
2
3
4
5
6
7
8
9
10
Main()
Dim MyFile As String
MyDir = "C:\Locatie_van_excel_bestanden\" 'Let op de \ aan het eind !
MyFile = Dir(MyDir & "*.xls") 

Do While MyFile <> ""
     Gosub Lees_Excel
MyFile = Dir()
Loop
Exit Sub


2) Per Excel file de juiste data uitlezen
code:
1
2
3
4
5
6
7
8
9
10
11
Lees_Excel:
Workbooks.Open (MyDir & MyFile)
Sheetname = ActiveSheet.Name
BeginRij = 1
EindRij = Sheets(Sheetname).Range(a65535).End9xlUp.Row
Kolom = 2 'Ik ga er vanuit dat het antwoord in kolom B staat
For Rij = BeginRij to EindRij
   Antwoord = Sheets(SheetName).Cells(Rij, Kolom) 
   Gosub Schrijf_Access
Next Rij
Return


3) Schrijf de waarde's in de database
Ik heb even geen werkende code bij de hand en geen zin om dat nu ff snel uit te zoeken, maar ik denk dat je al een heel eind verder komt. (Gebruiik van Google en de Search van GoT helpen je wellicht verder) Uit de losse pols :
code:
1
2
3
Schrijf_Access:
insert into tabel_naam Rij, Antwoord, MyFile
Return


Ik ga er hierboven even vanuit dat een bepaalde vraag altijd op dezelfde regel staat " Rij".
Het invoegen van de waarde van MyFile geeft de mogelijkheid om te kijken uit welk Excel Sheet het antwoord kwam.

Suc6
offtopic:
Voor degene die vinden dat het op een script request lijkt : dat is het niet, er word niet om gevraagd, en ik vond het leuk om ff wat te posten :P

[ Voor 3% gewijzigd door Bud_s op 13-11-2003 12:08 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 07:46

Boss

+1 Overgewaardeerd

offtopic:
Is dit dan een script push? Wist niet dat die ook bestonen :)

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Thanks Bud_s... Ik ga hier vanavond naar kijken en hoop dat ik iemand gelukkig kan maken :*)

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 27-08 14:13
Boss schreef op 10 november 2003 @ 09:55:
offtopic:
Is dit dan een script push? Wist niet dat die ook bestonen :)
LOL :) :)

Verwijderd

Vanuit SPSS kun je dit wel makkelijk automatiseren. Met een script heb je dit in een half uurtje af. Dan kun je de Excel sheets wel een unieke naam meegeven.

Verwijderd

Topicstarter
Moet je natuurlijk wel spss op je comp hebben staan....

Verwijderd

Dat klopt, maar het klinkt als iets statestiekerigs, dus wellicht heeft de stagiare een licentie.

Verwijderd

Topicstarter
Gevraagd en ze heeft inderdaad een universiteitslicentie, maar of ze er mee om kan gaan is natuurlijk een tweede :)

  • Boss
  • Registratie: September 1999
  • Laatst online: 07:46

Boss

+1 Overgewaardeerd

SPSS is toch wel een wat ingewikkeld programma.

In de tijd die je er nu aan hebt besteedt om hier te posten had je zelf al 200 sheets kunnen importeren.

maar da's natuurlijk geen tweaker instelling :)

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

SPSS: File, Open, Data. Kies het eerste bestand uit. Klik Op paste.
ga naar de syntax editor en laat dit stukje code lopen.
Vervolgens, File, save as. Kies een makkelijke bestandsnaam en kies als soort voor SPSS.
Wederom Past.
Laat Ook dit stukje code lopen.
Nu kopieer je de complete code die je hebt in een excel en je maakt hem even 200 keer na voor die andere bestanden (met dus andere bestandsnamen.)
Vervolgens weer terug in de syntax editor plakken en draaien maar.
Je hebt Nu alle bestanden omgezet naar SPSS file.
Nu In het eerste SPSS bestand. Data, Merge files, Add Cases
Kies de 2e file.
Wederom kies je voor Past.
In de syntax editor staat nu wederom nieuwe code. Kopieren naar Excel. Even handig 200 scriptregels maken voor alle files. Vervolgens terug in de syntax editor plakken. En draaien maar.
Afgezien van de rekentijd is het een half uurtje werk (voor mij).

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 27-08 14:13
@SanIsman : en als er 5 sheets niet terug gekomen zijn ?? of er 10 extra zijn ??
dan krijg je of fouten, of mis je files.

In mijn ogen is het beter om alle files in een bepaalde dir te laten doorlopen, ben je gelijk ook af van een bepaalde naamgeving.

En heel simpel te gebruiken, sleep de sheets die gelezen moeten worden in de dir met de verkenner en start de VBA code.

Volgens mij kan (bijna) iedereen met de verkenner overweg

Verwijderd

Je hebt gelijk Bud_S. SPSS blijft overigens niet hangen na de fout "bestand niet gevonden". IMHO wilde Bob_Dylan niet programmeren, vandaar dat ik met dit alternatief kwam.

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 27-08 14:13
@SanIsman: hoe meer alternatieven hoe beter.
En idd.... als het zonder programmeren kan ....
Pagina: 1