Avatar billede mikkelk Nybegynder
10. maj 2005 - 13:29 Der er 1 løsning

Access, Excell og arrays

Jeg har forstået det sådan at hvis man laver et excell-regneark fra access, så har man i Access alle de muligheder der også findes i Excell - i såfald burde nedenstående kode virke, men funktionen objXL.Application.WorkSheetFunction.Transpose(IndividResults) - der her skulle vende et to-dimensinelt array om virker ikke...nogen forklaringer på det?(Jeg får fejlen: "Type Mismatch"

Og hvis det ikke kan lade sig gøre - hvordan vender jeg så mit array om smartest?

Dim objXL As Object
Dim strWhat As String, boolXL As Boolean
Dim objActiveWkb As Object

    If fIsAppRunning("Excel") Then
        Set objXL = GetObject(, "Excel.Application")
        boolXL = False
    Else
        Set objXL = CreateObject("Excel.Application")
        boolXL = True
    End If

    objXL.Application.workbooks.Add
    Set objActiveWkb = objXL.Application.ActiveWorkBook
   
    objActiveWkb.Worksheets(1).Range("A1:AY10000") = objXL.Application.WorkSheetFunction.Transpose(IndividResults)
    objActiveWkb.Close savechanges:=True
   
    If boolXL Then objXL.Application.Quit
   
    Set objActiveWkb = Nothing: Set objXL = Nothing



\Mikkelk
Avatar billede mikkelk Nybegynder
10. maj 2005 - 15:55 #1
Skrev følgende funktion som virker glimrende:
Private Function transpose2dArr(arr)
    Dim returnArr
    uB1 = UBound(arr, 1)
    uB2 = UBound(arr, 2)
    ReDim returnArr(uB2, uB1)
    For i = 0 To UBound(arr, 1)
        For n = 0 To UBound(arr, 2)
            returnArr(n, i) = arr(i, n)
        Next
    Next
    transpose2dArr = returnArr
End Function
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