19. januar 2011 - 20:49Der er
6 kommentarer og 1 løsning
Macro, TransferSpreadsheet, Export til Excel fil med variable navn
Jeg vil gerne eksportere data til en række Excel filer (fil per land). Data bliver genereret fra en query 'Query1' hvor data der er med i udtrækket (land) afhænger af valg i en Combo box i en form '[Forms]![Form1]![CLand]'. Jeg ønsker at land valget i combo boxen indgår i filnavnet f.eks. 'Info Tyskland.xls', hvor tyskland er valget i combo boxen.
Jeg kan godt få det til at virke i visual basic code:
men hvad hulen er syntaksen når jeg hellere vil have gøre det i en macro med TransferSpreadsheet kommandoen. Når jeg i 'File name' feltet skriver: G:\Info & [Forms]![Form1]![Cland] & .xls kommer filen til at hedde nøjagtig som det står og ikke med den indsatte værdi af [Cland]. Og den vil ikke køre hvis det indsættes i appostroffer " ".
Er der nogen der har en ide til hvad der skal skrives for at få det til at virke i en macro??
Jeg har forsøgt med #1 løsningsforslag, men det lykkedes ikke lige. Fik en 'Can not update' statement. Har lidt en formodning om at årsagen skal søges i at der ikke køres USA/engelsk tegnsætning.
Til #2. Jeg kan godt få en VBA løsning til at fungere, så det er mere en irritation at jeg ikke kan få det til at fungere direkte fra macroen.
Til #3. Jeg har anvendt Access ganske intensiv gennem de seneste 20 år. Programmer er i dag, som det var for 20 år siden, i en klasse for sig. Jeg har aldrig mødt andre database programmer, hvor det på samme måde er muligt at opbygge avancerede semi-professionelle løsninger uden at skulle kode en eneste linie. På dette område er Access i en klasse for sig selv.
Og hvorfor så ingen kodning? Jeg er godt klar over at hvis man begynder at VBA kode kan Access endnu flere ting, men i samme øjeblik man bevæger ind på dette område holder løsningen op med at kunne vedligeholdes af almindelig brugere og bliver i stedet et nørd løsning. Og for nørd- og professionelle løsninger findes der langt mere egnede værktøjer end Access.
Access's enestående egenskab er netop at den, bla. vha. af de let forståelige Macro'er, giver almindelige brugere et slagkraftig og unique brugervenligt værktøj til små lokale applicationer og til behandling af større datamængder.
#1 - ingen forslag #2 - der er altså ting der ikke kan lade sig gøre i en makro. Blandt andet at indsætte værdier fra forms eller variable. Der skal en VBA funktion til. #3 - Nu er det sådan at det lige tager lidt tid før Access har været på markedet i 20 år :-) Version 1.0 kom i 1992 og version 1.1 i 1993 (7 stk 1.44 disketter - det var tider) At både version 1.0 og 1.1 så havde store problemer med datakorruption når man kom lidt op i datamængder er en anden sag.
At lave større databaser uden at bruge VBA vil jeg ikke bryde mig om. Det største af mine projekter har lige lidt over 110.000 linier kode når jeg laver en komplet udskrift via Total Access Analyzer (som er et ganske godt produkt fra FMS Inc.) At skulle alve et sådan system uden VBA vil simpelthen ikke være muligt.
Synes godt om
Slettet bruger
22. januar 2011 - 11:28#6
ucjhd:Du har netop eftervist at udtryk som: G:\Info & [Forms]![Form1]![Cland] & .xls ikke kan parses som makro argument - fordi alt betragtes som en streng.
Det ville, med dine egne ord, være for kryptisk til den almindelige bruger, som ikke ved at der er noget der hedder strenge og reglerne for deres sammensætning med andre udtryk
Af andre grunde har du ramt loftet for makroers anvendelighed - hvad hvis form1 ikke er åben? Hvad hvis Cland=null?
Jeg har aldrig skænket det en tanke, men du ret i at makroer kan anvendes som del af brugerinterface - tak for den påpegning.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.