Toon posts:

[Excel/Access] Access-gegevens importeren in Excel

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

Verwijderd

Topicstarter
Avond,

In Excel probeer ik een factuur te maken, die aan de hand van een parameter automatisch de NAW-gegevens uit een Access-database ophaalt. Met behulp van een parameterquery dus. Het lukt allemaal redelijk, alleen loop ik nog tegen een probleem aan:

Als ik de query uitvoer en ophaal, krijg ik het hele resultaat over mijn Excelsheet gekwakt. De columns vetgedrukt, met alle waardes er onder. Is het mogelijk dat ik zelf netjes de afzonderlijke waardes in cellen kan plaatsen? Het lijkt er op alsof ik voor elke cel een aparte query moet maken (wat mijns inziens niet echt efficiënt is).

Iemand ideeën? Bij voorbaat dank :)

  • Uiligheid
  • Registratie: December 2000
  • Laatst online: 20-08 15:21

Uiligheid

alle gekheid op een stokje

Volgens mij moet je dan echt gaan werken met VBA. Dit soort verhalen zijn dan verder wel te vinden in Programming en Webscripting.

Ik weet niet hoeveel prog-ervaring je hebt, dus zal niet in detail gaan, dat kan dan later nog wel :)

Ceterum censeo Carthaginem esse delendam


Verwijderd

Topicstarter
Uiligheid schreef op 22 februari 2004 @ 19:39:
Volgens mij moet je dan echt gaan werken met VBA. Dit soort verhalen zijn dan verder wel te vinden in Programming en Webscripting.

Ik weet niet hoeveel prog-ervaring je hebt, dus zal niet in detail gaan, dat kan dan later nog wel :)
Een beetje (V)Basic kan ik wel, maar ik had van MS wel verwacht dat zoiets wel vrij simpel op te lossen was...

Anyway, thanks voor je reply, het helpt me weer iets verder :)

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:19

Boss

+1 Overgewaardeerd

Even een methode vraag/opmerking:
Ik heb het idee dat je de facturen in Excel hebt staan, maar het 'programma' dat je gebruikt in Access?

Waarom zou je dan dingen gaan aanroepen vanuit Excel? Kan je niet veel makkelijker vanuit Access gewoon Excel openen en dan de gegevens erin zetten?

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 22 februari 2004 @ 21:42:
Even een methode vraag/opmerking:
Ik heb het idee dat je de facturen in Excel hebt staan, maar het 'programma' dat je gebruikt in Access?

Waarom zou je dan dingen gaan aanroepen vanuit Excel? Kan je niet veel makkelijker vanuit Access gewoon Excel openen en dan de gegevens erin zetten?
De opmaak heb ik in Excel staan, op bepaalde plekken hoeven alleen nog wat gegevens ingevuld te worden (factuurnummer, klantnummer, NAW, opdracht, prijs, etc). In Access heb ik een tabel Klanten en een tabel Facturen, met in de laatste een vreemde sleutel Klant_id (doodsimpel db model dus).

Wat bedoel je precies met het 'programma'? Ik ben inmiddels op aanraden van Uiligheid bezig met een macro die gebruikt maakt van SQLOpen e.d. Volgens mij moet dat gaan lukken (heb je overigens wel XLODBC voor nodig, zit niet meer standaard bij Office XP).

  • Boss
  • Registratie: September 1999
  • Laatst online: 09:19

Boss

+1 Overgewaardeerd

Wat ik bedoel:
Je hebt de tabellen staan in Access? Dan neem ik een beetje aan dat je dar ook enige formulieren bij hebt gemaakt waar de gebruiker zijn informatie kan opvragen/invoeren.

Dan is het qua handelingen toch niet makkelijk als je eerst Excel moet openen, en dan daarvandaan de gegevens uit Access halen? Dan kan je toch beter vanuit Access de gegevens naar Excel sturen? Dan hoeft de gebruiker niet eerst te bedenken dat hij een ander programma nodig heeft om een factuur te maken: dat doet de database/programma voor hem.

Waarom je XLODBC nodig hebt snap ik ook niet. Alle office programma's kunnen via wat VBA code gegevens met elkaar uitwisselen. Heb je helemaal geen extra componenten voor nodig.

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.


  • Falcon
  • Registratie: Februari 2000
  • Laatst online: 06:27

Falcon

DevOps/Q.A. Engineer

Zoek even naar de functie DDE ... deze kan er voor zorgen dat uit 1 specifiek veld van access gegevens kunt halen.

"We never grow up. We just learn how to act in public" - "Dyslexie is a bitch"


Verwijderd

Topicstarter
Boss schreef op 23 februari 2004 @ 13:05:
Wat ik bedoel:
Je hebt de tabellen staan in Access? Dan neem ik een beetje aan dat je dar ook enige formulieren bij hebt gemaakt waar de gebruiker zijn informatie kan opvragen/invoeren.
Klopt, de data staat in een Access DB. De formulieren die ik gemaakt heb zijn nog wat gebrekkig, maar op zich kan dat allemaal nog wat mooier gemaakt worden.
Dan is het qua handelingen toch niet makkelijk als je eerst Excel moet openen, en dan daarvandaan de gegevens uit Access halen? Dan kan je toch beter vanuit Access de gegevens naar Excel sturen? Dan hoeft de gebruiker niet eerst te bedenken dat hij een ander programma nodig heeft om een factuur te maken: dat doet de database/programma voor hem.
Daar had ik nog niet aan gedacht. Op zich zou dat een mooie oplossing zijn. Het is dus mogelijk om bijvoorbeeld een knop op een formulier in Access te maken, en daar een macro achter te hangen die Excel opstart, het factuurblad opent, een aantal gegevens invult en eventueel zelfs uitprint?
Waarom je XLODBC nodig hebt snap ik ook niet. Alle office programma's kunnen via wat VBA code gegevens met elkaar uitwisselen. Heb je helemaal geen extra componenten voor nodig.
In de Help van Excel lees ik dat je voor de functies SQLOpen, SQLExecQuery, SQLClose etc. de invoegmacro xlodbc.xla nodig hebt. Die wordt nog wel geleverd bij Office 2000, maar niet meer bij Office XP. Tenminste, dat heb ik er ongeveer van begrepen.

Maar, ik denk inderdaad dat er andere oplossingen zijn (anders dan gebruik van deze functies), waardoor je XLODBC niet nodig hebt :)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

DDE is niet bepaald de aanbevolen methode om gegevens uit te wisselen tussen officeapplicaties; net zomin als xlodbc.xla die zich gedeeltelijk op dde baseert. Misschien dat ie daarom niet(?) meer meegleverd wordt.
Ms geeft heel veel codevoorbeelden van het aanroepen en besturen van officeprogramma's met vba. Veel voorbeelden zijn gebaseerd op word, maar als je de truuc eenmaal door hebt is het vrij eenvoudig om te zetten. Lijkt iig moeilijker dan het is.
Zoek voor voorbeelden eens op 'getobject' en 'createobject'.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Niesje schreef op 23 februari 2004 @ 20:20:
DDE is niet bepaald de aanbevolen methode om gegevens uit te wisselen tussen officeapplicaties;
Zoiets las ik inderdaad ook al in de Helpfiles. Schijnt iets met beveiliging te zijn (het ontbreken er van).
net zomin als xlodbc.xla die zich gedeeltelijk op dde baseert. Misschien dat ie daarom niet(?) meer meegleverd wordt.
Ik heb het voor elkaar gekregen dat kreng te installeren (was eigenlijk voor een andere Office versie, heb van alles in de .inf's zitten knoeien), en mijn macro z'n werk te laten doen. Ik kan nu een factuurnummer in een cel invoeren, op een knopje op de werkbalk klikken en Excel haalt de NAW-gegevens, factuurdatum en klantnummer op.

Beetje jammer trouwens dat daar een knopje voor nodig is. De Help vertelt me dat je het uitvoeren van een macro op een paar manieren kan doen: handmatig aanroepen, knopje op de werkbalk en een (clickable?) grafisch object/OLE. Ik kom nergens iets tegen dat de macro automatisch wordt uitgevoerd op het moment dat ik het factuurnummer heb ingevuld en op enter druk. Dat moet toch mogelijk zijn?
Ms geeft heel veel codevoorbeelden van het aanroepen en besturen van officeprogramma's met vba. Veel voorbeelden zijn gebaseerd op word, maar als je de truuc eenmaal door hebt is het vrij eenvoudig om te zetten. Lijkt iig moeilijker dan het is.
Zoek voor voorbeelden eens op 'getobject' en 'createobject'.
Het lijkt er op alsof je op een stuk of tien manieren gegevens tussen programma's kan uitwisselen. DDE, ODBC, ADO, OLE... Waarschijnlijk zullen een aantal termen vast wel veel met elkaar te maken hebben, maar ik zie door de bomen het bos even niet meer.

Het werkt nu zoals ik wilde hebben. Echter, de suggestie hier ergens boven dat je alles via Access aan zou kunnen sturen, is ook een mooie oplossing. Iets om te onthouden dus, dat ga ik ook eens een keer implementeren. Gelukkig is het allemaal voor mezelf, niet voor een klant :)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op 24 februari 2004 @ 19:34:
[...]
[knip]

Beetje jammer trouwens dat daar een knopje voor nodig is. De Help vertelt me dat je het uitvoeren van een macro op een paar manieren kan doen: handmatig aanroepen, knopje op de werkbalk en een (clickable?) grafisch object/OLE. Ik kom nergens iets tegen dat de macro automatisch wordt uitgevoerd op het moment dat ik het factuurnummer heb ingevuld en op enter druk. Dat moet toch mogelijk zijn?

[...]
het worksheet_change(Byval target as range) event loopt af in zo'n geval. Check target.row en target.column en roep dan de rest van de code aan. klaar ben je.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1