Avatar billede region Nybegynder
26. juli 2001 - 09:01 Der er 17 kommentarer og
1 løsning

exporter tabel til excel

jeg har en tabel (top10) hvor der er adskillige felter herunder et \"branch nr\" felt.
så har jeg en anden tabel (tblbranch) hvor der kun er et felt \"branchnr\".

det jeg ønsker er at eksportere til flere seperate excelar i samme mappe.

såfremt der i tblbranch står :

2
3
5

skal den først gemme et excelark på d-drevet i en ny mappe der hedder test som indeholder alle poster fra tabellen (top10)hvor branch nr = 2

så skal den gå til næste post og gemme et excel ark med alle poster hvor branch nr = 3 i d:\\test\\ 

osv.


Avatar billede terry Ekspert
26. juli 2001 - 09:07 #1
Dim db As Database
Dim rs As Recordset
Dim sSQL As String
Dim MyQry As QueryDef

    Set db = CurrentDb
   
    Set rs = db.OpenRecordset(\"tblBranch\")

   
    DoCmd.SetWarnings False
   
    Do While Not rs.EOF
           
        sSQL = \"SELECT TOP 10 [gr all down].* FROM [gr all down] WHERE [gr all down].[branch nr] = \'\" & rs!BranchNr & \"\'\"

        \'Create a new querydef
        Set MyQry = db.CreateQueryDef(rs!BranchNr)
        MyQry.SQL = sSQL
        MyQry.Close
       
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, rs!BranchNr, \"D:\\test\\Filial_\" & rs!BranchNr & \".xls\", False, \"\"
       
        db.QueryDefs.Refresh
        db.QueryDefs.Delete rs!BranchNr
           
        rs.MoveNext
       
    Loop
   
    DoCmd.SetWarnings False
   
Avatar billede proaccess Nybegynder
26. juli 2001 - 09:07 #2
Public Sub exportRegionToExcel(lngBranch As Long)
  Dim q As QueryDef
  Set q = CurrentDb.CreateQueryDef(\"ZZZ_TempExport\", \"SELECT * FROM TOP10 WHERE [Branch nr]=\" & lngBranch)
  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, \"ZZZ_TempExport\", \"D:\\TEST\\\" & lngBranch & \".xls\", , \"Ark1\"
  CurrentDb.QueryDefs.Delete \"ZZZ_TempExport\"
End Sub

Public Sub test()
  Dim RA as RecordSet
  Set RA=CurrentDB.OpenRecordset(\"SELECT Branchnr FROM tblbranch;\")
  While Not RA.EOF
    exportRegionToExcel RA!Branchnr
    RA.MoveNext
  Wend
  RA.Close
  Set RA=Nothing
End Sub

Avatar billede region Nybegynder
26. juli 2001 - 09:19 #3
Jeg skylder terry at prøve hans metode først fordi han har brugt en del krudt på det allerede igår , MEN... jeg har lavet det lidt om dog får jeg en felj i transfer linien da den siger at stien ikke findes (d:\\test\\filial_2.xls )

jeg har et d-drev men det hjælper heller ikke hvis jeg fjerner \"test\" fra stien så den hedder:

(d:\\filial_2.xls )


???
Avatar billede region Nybegynder
26. juli 2001 - 09:19 #4
her er mit script :

Private Sub Command55_Click()
Dim db As Database
Dim rs As Recordset
Dim sSQL As String
Dim MyQry As QueryDef

    Set db = CurrentDb
   
    Set rs = db.OpenRecordset(\"tblBranch\")

   
    DoCmd.SetWarnings False
   
    Do While Not rs.EOF
           
        sSQL = \"SELECT [top10].* FROM [top10] WHERE [top10].[branch nr] = \'\" & rs!BranchNr & \"\'\"

        \'Create a new querydef
        Set MyQry = db.CreateQueryDef(rs!BranchNr)
        MyQry.SQL = sSQL
        MyQry.Close
       
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, rs!BranchNr, \"D:\\test\\Filial_\" & rs!BranchNr & \".xls\", False, \"\"
       
        db.QueryDefs.Refresh
        db.QueryDefs.Delete rs!BranchNr
           
        rs.MoveNext
       
    Loop
   
    DoCmd.SetWarnings False
   
End Sub
Avatar billede terry Ekspert
26. juli 2001 - 09:36 #5
well I have just tested it here and it works fine, I dont get the message!
Avatar billede region Nybegynder
26. juli 2001 - 09:46 #6
her er den exakte medd. :

Run-time error \'3044\':

\'d:\\test\\filial_2.xls\' isn\'t a valid path. Make sure that the pathname is spelled correctly, and that you have connected to the server on which the file resides.

PS desuden denne meddelellse er der ged i den forespørgsel den laver idet der i kriterie står :
\'2\' skriver jeg derimod bare 2 uden klammer virker forespørgslen...

( normalt plejer man da at skulle angive \"\" om sine værdier i kriterier ????????)

Avatar billede proaccess Nybegynder
26. juli 2001 - 09:48 #7
\"Gåseøjne\" er kun hvis der er tale om strenge, hvis dit Branchnr er numerisk, så skal de ikke med...

Hvad sker der, hvis du prøver at skrive til C-drevet???
Avatar billede terry Ekspert
26. juli 2001 - 09:49 #8
I have feeling that you have your \"filialer\" as numbers in your tblBranch, I have tehm as text!!!
Yes I am aware that ther are numbers!
Avatar billede region Nybegynder
26. juli 2001 - 09:52 #9
har også prøvet til c-drevet men nej....

det hjælper heller ikke at ændre branchnr i tblbranch fra number til text...
Avatar billede region Nybegynder
26. juli 2001 - 09:56 #10
jeg tror det hele virker hvis bare den der export ville virke....

jeg har også ændret fra number til text i tabellen top10. men nej...lige lidt hjalp det...


for helv... det plejer da ikke at volde problemer..
Avatar billede proaccess Nybegynder
26. juli 2001 - 10:05 #11
Du skal nok prøve at få lidt ensartethed over hvordan du skrive BranchNR, i Terry\'s eksempel bliver der først udvalgt data ud fra et kriterie på [Branch Nr], og derefter bruger man et felt i tabellen som hedder [Branchnr]... disse skal da vist være ens???  Prøv at sætte BranchNr til numerisk i alle tabeller, og at navngive ensartet!!!
Avatar billede region Nybegynder
26. juli 2001 - 10:06 #12
nu virker det...!!! det var vist bare det forbandede bibliotek der ikke fandtes \"test\".

her er scriptet som jeg har det til at virke med...

Private Sub Command55_Click()
Dim db As Database
Dim rs As Recordset
Dim sSQL As String
Dim MyQry As QueryDef

    Set db = CurrentDb
   
    Set rs = db.OpenRecordset(\"tblBranch\")

   
    DoCmd.SetWarnings False
   
    Do While Not rs.EOF
           
        sSQL = \"SELECT [top10].* FROM [top10] WHERE [top10].[branch nr] = \'\" & rs!BranchNr & \"\'\"

        \'Create a new querydef
        Set MyQry = db.CreateQueryDef(rs!BranchNr)
        MyQry.SQL = sSQL
       
        MyQry.Close
       
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, rs!BranchNr, \"d:\\filial_\" & rs!BranchNr & \".xls\", True, \"\"
       
        db.QueryDefs.Refresh
        db.QueryDefs.Delete rs!BranchNr
           
        rs.MoveNext
       
    Loop
   
    DoCmd.SetWarnings False
   
End Sub
Avatar billede terry Ekspert
26. juli 2001 - 10:08 #13
I thought you said you had changed it to d:\\ and not D:\\test ?
Avatar billede region Nybegynder
26. juli 2001 - 10:09 #14
ikke fordi jeg ikkeville give dig point Poul Erik, men som sagt havde terry brugt en del ressourcer allerede forud for dette spørgsmål...

hvis du føler dig snydt må du sige til...dt er jo ved at være lavvande i min kasse sååhhhh jeg er nok blevet lidt nærig i disse varme dage...
Avatar billede terry Ekspert
26. juli 2001 - 10:11 #15
you should have given the points to proaccess, he wants to get in the top 10 too!

Avatar billede region Nybegynder
26. juli 2001 - 10:11 #16
det havde jeg faktisk også ...!!!! men hvem ved hvad der foregår i hovedet på bill Gates programmer engang imellem eller på min pc...

man kan jo blive forundret....

jeg havde også en textbox på et tidspunkt der skulle blive synlig ved åbning af en formular.. jeg kunne ikke få det til at virke og opgav da alt syntes rigtigt, MEN så en dag... ja så virkede det...?????

Avatar billede proaccess Nybegynder
26. juli 2001 - 10:15 #17
Region> Det vigtigste er at det virker!!! Det har Terry absolut hjulpet dig med, så det er rigtig nok ham, som fortjener de point!!!
Avatar billede region Nybegynder
26. juli 2001 - 10:26 #18
Da jeg efterhånden bliver bedre til at forstå VBA og synes det er helt kanon det her stiller jeg lige endnu et spørgsmål...

( jeg udprinter og gemmer alle mine svar / løsninger til senere brug )

http://www.eksperten.dk/spm/92348

Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester