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 ;-).
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 |