Toon posts:

[Software]Macro probleem met acces!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi tweakerleden,

Ik zal even de situatie voorleggen voordat ik met het probleem kom...

Ik loop stage op een school. Hier beheren we met een aantal man een mooi 2k netwerk.

Omdat we veel met leerlingen te maken hebben omdat we ook een oplettende taak hebben en dat is de mensen controleren die in het studiehuis moeten zitten.

Mijn stagebegleider vroeg of ik een database kon maken waarmee hij snel kon controleren hoe de leerling heet en ook met het leerling nummer. Dit heb ik met een simpele like functie via een query'tje laten lopen en dit verloopt eigenlijk ook wel allemaal prima en zonder problemen.

Nu heb ik gezorgd dat er voor de havo en vwo een aantal excel documenten gemaakt zijn, en deze moeten elke vrijdag uitgeprint worden omdat de leerlingen daar hun activiteit moeten afvinken.

Ondertussen is dit toch al wel een heel aantal documenten geworden omdat ik voor havo en vwo elke dag gesplitst heb. Daarom wil ik dit eigenlijk via een macro'tje oplossen en in die macro vertellen dat hij al die excel documenten even uit moet printen. Dit moet volgens mij toch wel kunnen :S.

Kan iemand die veel verstand heeft van macro's met acces misschien hier even naar kijken ;)

Bij voorbaat dank !! O-)

groetjes Ron

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Kan iemand die veel verstand heeft van macro's met acces misschien hier even naar kijken
Kan je even zelf een beginnetje maken ;)

Welkom op GoT trouwens :)
We gaan er hier van uit dat iedereen het eerst zelf probeert op te lossen en dan pas een topic opent - zie ook FAQ forumgedrag waar dit wat dudielijker wordt uitgelegd.

Een kant-en-klare oplossing vragen is niet echt aardig op GoT, ik wil het best kant en klaar voor je doen maar dan wel voor een vriendenprijsje van €50/uur ;)

Maar het gaat dus om een aantal documenten aan te passen en uit te printen? Wat je noemt lijkt me heel goed uit te vinden met de macro-opneem knop in Excel. Pas een celletje aan, sla op onder een naam, druk op print. Je krijgt er dan een lading VBA uit in de editor, die je dan natuurlijk nog moet aanpassen zdd. er per leerling een doc wordt aangemaakt.
Enige belangrijke VBA opdrachten: natuurlijk FOR, sheets("naam").printout copies:=aantal en bijv. worksheets("naam").cells(i,j) = bla

Met een access koppeling ertussen wordt het iets lastiger, maar [google=automating excel access] en de diverse sites met tutorials helpen je daar vast mee op weg.

Ik zou zeggen: probeer het een stukje en dan denken we graag met je mee als je vastloopt.

[ Voor 6% gewijzigd door F_J_K op 20-11-2003 15:34 . Reden: even afgemaakt :) ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
ja, ik kan dit wel via excel oplossen maar ik wilde dit eigenlijk centraal houden en regelen in de database. Ik kan dit ook wel oplossen met een beetje vb code (al ben ik daar zelf niet zo super sterk in :) ).

Ik d8 namelijk dat er wel in acces bij de afdeling macro's wel een standaard opdracht "print excel document" of zoiets in zat :(

Ik heb de help files wel al door gespit, maar toch denk ik dat ik het wel makkelijker op te lossen is maar ik ga nog wel even verder..

Misschien is een knopje met daarachter een beetje code waar je die documenten uitprint ook wel een makkelijke optie..

Ik wil deze optie eigenlijk wel implementeren in de database dus ....

Denk ff mee wilt u :+

[ Voor 4% gewijzigd door Verwijderd op 24-11-2003 14:44 ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Whehe, dan heb je pech :D Ik heb juist weer weinig kaas gegegeten van Access dus zal je moeten kijken of iemand anders wil helpen als je er niet zelf uit komt

Je komt ws. toch aan VBA als je het wilt automatiseren, en dan kom je aan iets als dit. Dit is wat overdreven duur.

Trouwens zijn de Access macro's niet gelijk aan VBA "macro's", wat misschien voor wat verwarring kan zorgen :)

Op zich is het exporteren naar excel heel simpel te doen (bestand -> exporteren en je bent er ;) ) maar het wordt interessant (en wat lastiger) als je er enige intelligentie in wilt hebben.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • KingRichard
  • Registratie: September 2002
  • Laatst online: 17-08 19:31

KingRichard

former Duke of Gloucester

F_J_K schreef op 24 november 2003 @ 11:02:
Trouwens zijn de Access macro's niet gelijk aan VBA "macro's", wat misschien voor wat verwarring kan zorgen :)
De Accessmacro's zijn een aantal standaardcommando's die je achter elkaar kunt zetten. Deze feature gaat er t.z.t. uit, maar wordt voorlopig ondersteund in nieuwere Accessversies. De vervanging is VBA, dat dus ook al in Access zit (ik geloof vanaf Access97), net als in Excel, Word, etc.

Je probleem: Als ik het goed begrepen heb je een aantal Excelbestanden op schijf staan, die geprint moeten worden. Dus niks exporteren naar van Access naar Excel, alleen .xls openen en uitprinten. De volgende code opent alle Excelbestanden in een map (strPath) en print ze één voor één uit. Maak in Access een nieuwe (VBA-)module en plak dit erin:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub PrintExcelBestanden()

Dim objXL                       As New Excel.Application
Dim objXLBook                   As Excel.Workbook
Dim strPath, strWorkbook(100)   As String
Dim intCounter, n               As Integer
    
    strPath = "c:\test\"        ' Map met .xls-bestanden
    
    intCounter = 1              ' teller
    
    strWorkbook(intCounter) = Dir(strPath & "*.xls")
    
    Do While strWorkbook(intCounter) <> ""
    
        intCounter = intCounter + 1
        strWorkbook(intCounter) = Dir
        
    Loop
    
    intCounter = intCounter - 1 ' want de laatste is leeg
    
    For n = 1 To intCounter
    
        Set objXLBook = objXL.Workbooks.Open(Filename:=strPath _
            & strWorkbook(n), ReadOnly:=True)
        objXLBook.PrintOut
        objXLBook.Close
    
    Next n
    
    Set objXLBook = Nothing
    Set objXL = Nothing

End Sub
Voor deze routine is het noodzakelijk dat de reference Microsoft Excel Object Library ingeschakeld is (VBA-editor -> Tools -> References).

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

KingRichard schreef op 24 november 2003 @ 23:26:
De vervanging is VBA, dat dus ook al in Access zit (ik geloof vanaf Access97), net als in Excel, Word, etc.
Yup. Al bevat Access97 nog wat zaken niet die wel in de nieuwere versies zitten en dus even moeten worden bekeken (zoals verwijzingen, ADO vs DAO etc. Al was A95 --> A97 een stuk erger. Maar VaLiNoR kan dit alles negeren geloof ik, behalve de boodschap dat verschillende access versies door elkaar gebruiken niet heel handig is :P )
Dus niks exporteren naar van Access naar Excel, alleen .xls openen en uitprinten.
Oeps, ik lees blijkbaar niet goed :X

Of moet er nog ergens een celletje worden aangepast (zoals de naam erboven?) Dat kan met
Dim objXLSheet As Excel.Worksheet


Set objXLSheet = objXLBook.Worksheets("Blad2")
objXL.Visible = True
objXLSheet.Cells(1, 1).Value = "Naam die je wilt"

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Ik heb het inmiddels gevonden,

Bedankt allemaal voor jullie medewerking,

groetjes Ron :)

[ Voor 170% gewijzigd door Verwijderd op 01-12-2003 08:41 ]

Pagina: 1