Meerdere records exporteren naar 1 rij in excell

Status
Niet open voor verdere reacties.

oosterbaan S S

Gebruiker
Lid geworden
13 mrt 2005
Berichten
128
Hallo

Is het mogelijk om twee (of meerdere) records, die dezelfde naw hebben, maar verschillende producten en prijzen, te exporteren naar excell en dan 1 recordrij terug te krijgen?

De naw moet dus slechts 1 maal in de excell rij terugkomen en de verschillende producten moeten in meerdere kolommen achter de naw terecht komen (maar alles dus in 1 rij)

Ik hoop dat de vraagstelling een beetje duidelijk is, anders hoor ik het wel :o

Bedankt alvast.
 
Ik heb hier een beginnetje voor je. Kijk maar of je er wat mee kan. Denk het wel.
Het exporteert een recordset naar excel. Je kan het zien gebeuren als je blnVisible op true zet. Veldnamen worden toegevoegd als je blnHeader op true zet.

Enjoy!

Code:
Public Sub CreateSpreadsheetFromRS(rst As Recordset, blnVisible As Boolean, Optional blnHeader As Boolean = True)
'Recordset exporteren naar excel.

    Dim appExcel  As Excel.Application
    Dim wbExcel   As Workbook
    Dim wsExcel   As Worksheet
    Dim qdf       As QueryDef
    Dim intRij    As Integer
    Dim intVelden As Integer
    Dim intTeller As Integer
        
    If Not rst.EOF Then
        Set appExcel = New Excel.Application
        With appExcel
            .Visible = blnVisible
            Set wbExcel = .Workbooks.Add
            Set wsExcel = wbExcel.Worksheets(1)
        End With
    Else
        MsgBox "Geen records gevonden voor " & rst.Name, vbExclamation, GetAppTitle()
        Exit Sub
    End If
    
    intVelden = rst.Fields.Count - 1
        
    intRij = 0
    
    If blnHeader Then 'Default worden de veldnamen geprint
        'Eerst de veldnamen
        intRij = intRij + 1
        For intTeller = 0 To intVelden
            wsExcel.Cells(intRij, intTeller + 1) = rst.Fields(intTeller).Name
        Next intTeller
    End If
                
    Do While Not rst.EOF
        intRij = intRij + 1
        For intTeller = 0 To intVelden
            wsExcel.Cells(intRij, intTeller + 1) = rst.Fields(intTeller)
        Next intTeller
        rst.MoveNext
    Loop
        
    wsExcel.Columns.AutoFit
    wsExcel.Rows.AutoFit
    appExcel.Visible = True
    appExcel.WindowState = xlMinimized
    
    Set rst = Nothing
    Set qdf = Nothing

End Sub
 
Geweldig Guus
Ik ga er in het weekend mee aan de slag en laat daarna mijn reactie weten.

Bedank :thumb:
Groet
 
Beste Guus (of anderen)

Het is me nog niet gelukt met jouw vba maar wel (gedeeltelijk op een andere manier)

Ik heb een rapport gemaakt waarin alle relevante velden uit de query geplaatst zijn.
In de detailsectie staan de productgegevens. Deze gegevens kunnen meerere malen voorkomen en geven dan ook meerdere rijen. De naw gegevens, die gekoppeld zijn aan de productgegevens, en dan dus ook meerdere malen kunnen voorkomen, staan in de groepkoptekstsectie en komen daardoor dus 1 maal voor.
Bij export naar Excell heb ik nu 1 rij met naw gegevens en meerdere rijen met productgegevens. So far so good.

Nu wil ik bij de export altijd 10 rijen met productgevens in mijn excellsheet hebben, ongeacht of ze gevuld zijn met data.

Ik denk zelf aan een stukje vba in de detailsectie van het rapport waarbij er gekeken wordt hoeveel productregels er geexporteerd worden en hoeveel lege regels er daardoor nodig zijn.
Maar hoe programmeer ik dat?

Bedankt alvast
 
Ik borduur voort op mijn voorbeeld code:
als je kijkt naar de variabele intrij, deze geeft de row in de excel spreadsheet aan.
Misschien kan je daar wat mee.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan