Export Access query to Excel 2000

Status
Niet open voor verdere reacties.

SeanD

Gebruiker
Lid geworden
8 mrt 2011
Berichten
8
Ik heb het volgende irritante probleem.
Ik werk met Access 2007
Ik heb een knopje die de resultaten van bepaalde query's naar Excel exporteert.
In Access 2007 werken die zeer goed met volgende code:
Code:
DoCmd.OutputTo acOutputQuery, "Temp_N°_Code", , , True
Als ik dit echter in Access 2000 probeer, gaat mijn Excel-file open en krijg ik een Error:
Toegang geweigerd tot "Temp_N°_Code".

Wil ik een tabel exporteren doe ik dit met de volgende code:
Code:
DoCmd.OutputTo acOutputTable, "Data", acFormatXLS, , True
Dit werkt in Access 20007 en in Access 2000.

Weet er iemand waarom dit met tabellen WEL en met queries NIET lukt?
 
kan het niet testen maar verslikt access 2000 zich niet in in "N°" ? het ° teken en velen anderen werden tijden niet geaccepteerd in tabelnamen etc.
 
Waarom zo moeilijk? En niet het Transfer commando gebruiken? Kun je exact aangeven welke Excel versie je wilt gebruiken:

Code:
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Per onderdeel", "H:\Testje.xls", True
 
Bij TransferSpreadsheet is het niet mogelijk om je locatie manueel te kiezen =)
Als ik epxort, moet ik kunnen kiezen waar ik de excelfil opsla :)
 
Dat kan wel, maar je hebt een FileDialog stukje nodig om de map en eventueel bestandsnaam aan te geven. Wat mij nu interesseert, is of je m.b.v. Transfer wèl met deze bestandsnaam kunt exporteren...
 
Ja, dit werkt :)
Maar ik zou nu graag nog willen kiezen waar ik het opsla en hoe ik het zal noemen.
Bij OutputTo kon je de optie [FileName] leeglaten en dan kon je dit automatisch kiezen, bij transferspreadsheet gaat dit niet.
 
Een simpele oplossing is om er een Inputbox voor te hangen voor de bestandsnaam. Eventueel inclusief de mapnaam. Of je gebruikt deze code om een map te selecteren:

Code:
    strPath = SelectFolder("Selecteer een map...", "")
    If Len(strPath) Then
        Me.Documents = strPath
    Else
        MsgBox "Er is op <Cancel> gedrukt..."
    End If

Met een Inputbox vraag je dan nog om de bestandsnaam, en die voeg je samen met het pad.

En hier draait het dan om:

Code:
Function SelectFolder(Optional Title As String, Optional TopFolder As String) As String
Dim objShell As New Shell32.Shell
Dim objFolder As Shell32.Folder

'Deze functie maakt gebruik van de bibliotheek <Microsoft Shell Controls And Automation>
'Als je 16384 gebruikt in plaats van 1 op de volgende regel, dan worden ook de bestanden getoond.
    Set objFolder = objShell.BrowseForFolder(0, Title, 1, TopFolder)
    If Not objFolder Is Nothing Then
        SelectFolder = objFolder.Items.Item.Path
    End If

End Function
 
Me.Documents geeft een foutmelding.

Hij kan Documents niet vinden
 
Dat verbaast me helemaal niks; het voorbeeldje (het sub stuk dus) zet de uitkomst van de functie op een tekstvak op een formulier.... Jij zult hem aan een variabele willen toewijzen.
 
En geef de volgende keer aan dat je de vraag ook in een ander forum post; dat lijkt mij wel zo netjes....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan