Toon posts:

Access 2010 - (VBA) Recordsets opslaan in excel file

Pagina: 1
Acties:

Onderwerpen


  • Morrey
  • Registratie: november 2005
  • Laatst online: 25-09 07:34
Beste mensen,

Een vraagje over het volgende. Ik ben een database aan het bouwen voor de studievereniging, waarin voornamelijk studenten worden gekoppeld aan de verschillende commissies die er zijn.

Wat ik nu gemaakt heb, is een functie waarbij de gegevens van commissieleden van een of meer specifieke jaren naar excel ge-exporteerd worden. Dit doe ik nu, door alle velden vanuit de studenten tabel te kopieren naar een dump tabel, die ik dan via docmd.outputto naar excel exporteer.

Dit werkt, alhoewel ik liever had gezien dat ik direct een recordset naar excel zou kunnen wegschrijven. Ik heb lang gezocht maar niets kunnen vinden.

Nu heb ik de vraag gekregen of ik ook een optie zou kunnen toevoegen, waarin slechts een deel van alle velden ge-exporteerd wordt. Bijvoorbeeld alleen de naam plus adresgegevens of naam + telefoonnr. Dus volgens mij kan ik niet met het truukje met mijn dump tabel toepassen, waarna ik de handige functie outputto kan gebruiken. Ik zou dus graag een ado recordset direct naar excel exporteren, zonder dat ik allerlei vaste parameters in hoef te stellen (zoals bijvoorbeeld de locatie van het bestand, dit mogen ze zelf bepalen)

Wat voor suggesties hebben jullie? Alvast bedankt.

PS. Dit is de code die ik tot nu toe heb, misschien hebben jullie wat ook wat tips & tricks, ik ben tenslotte maar een student technische bedrijfskunde en geen informatica ;-).

Visual Basic: database.accdb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Private Sub Command189_Click()

Dim mySQL As String
Dim strJaargang As String
Dim strAfgestudeerd As String
Dim bolRun As Boolean
Dim valSelect As Variant

mySQL = "INSERT INTO Temp ( Idnr, [---- een hoop velden ----], [Eerste jaar bij TU/e] )"
mySQL = mySQL & " SELECT DISTINCT Studenten.Idnr,  [---- een hoop velden ----],  Studenten.[Eerste jaar bij TU/e]"
mySQL = mySQL & " FROM Studenten LEFT JOIN Commissieleden ON Studenten.Idnr = Commissieleden.StudentID"

If select_studenten.Value = "Alle studenten" Then
    If afgestudeerd.Value = 1 Then
        strAfgestudeerd = "((Studenten.[Examendatum afsluitend diploma]) Is Null)"
        mySQL = mySQL & " WHERE (" & strAfgestudeerd & ")"
    End If
    bolRun = True
    
Else
    If Jaargang.ItemsSelected.Count > 0 Then
    
        For Each valSelect In Me.Jaargang.ItemsSelected
            strJaargang = strJaargang & "((Commissieleden.Jaargang)='" & Me.Jaargang.ItemData(valSelect) & "') Or "
        Next valSelect
        strJaargang = Left(strJaargang, Len(strJaargang) - 4)
    
        If afgestudeerd.Value = 1 Then
            strAfgestudeerd = "((Studenten.[Examendatum afsluitend diploma]) Is Null) AND "
            
            mySQL = mySQL & " WHERE (" & strAfgestudeerd & "( " & strJaargang & "))"
        
        Else
            mySQL = mySQL & " WHERE ( " & strJaargang & " )"
        End If
        bolRun = True
    Else
        MsgBox "Selecteer ten minste 1 jaargang"
        bolRun = False
    End If
End If

If bolRun = True Then

    
    DoCmd.SetWarnings False
    DoCmd.RunSQL "delete * from Temp"
    DoCmd.RunSQL mySQL
    DoCmd.SetWarnings True
    DoCmd.OutputTo acOutputTable, "Temp", acFormatXLSX, , True, , , acExportQualityScreen
End If


End Sub

  • Morrey
  • Registratie: november 2005
  • Laatst online: 25-09 07:34
Mensen, ik heb mijn antwoord gevonden:

How to transfer data from an ADO Recordset to Excel with automation

Initieel schrikken al die objecten een beetje af, maar nadat ik alle onnodige regels code verwijderd heb, werkt t prima!

Thnx


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee