Issuu on Google+

Robin Tillie Schooljaar :

Opdrachtgevers: Mevr. Ann Van Landuyt Mevr. Natacha Bauwens Dhr. Michaël De Schutter

2009 – 2010


Robin Tillie

2


Inhoudsopgave ERD .................................................................................................................................. 5 Data dictionary ................................................................................................................. 7 Tabel : Tbl_Leden ................................................................................................................................................ 7 Concrete inhoud van de Tabel : Tbl_Leden : .................................................................................................. 8 Tabel : Tbl_Groepen ........................................................................................................................................... 9 Concrete inhoud van de Tabel : Tbl_Groepen : .............................................................................................. 9 Tabel : Tbl_Graad .............................................................................................................................................. 10 Concrete inhoud van de Tabel : Tbl_Graad : ................................................................................................ 10 Tabel : Tbl_ CategorieĂŤn ................................................................................................................................... 11 Concrete inhoud van de Tabel : Tbl_CategoriĂŤn : ........................................................................................ 11 Tabel : Tbl_Functies .......................................................................................................................................... 12 Concrete inhoud van de Tabel : Tbl_Functies : ............................................................................................ 12 Tabel : Tbl_Bestuursfuncties............................................................................................................................. 13 Concrete inhoud van de Tabel : Tbl_Bestuursfuncties : ............................................................................... 13 Tabel : Tbl_Barcodes ......................................................................................................................................... 14 Concrete inhoud van de Tabel : Tbl_Barcodes : ........................................................................................... 14 Tabel : Tbl_Aanwezigheden .............................................................................................................................. 15 Concrete inhoud van de Tabel : Tbl_Aanwezigheden : ................................................................................ 15 Tabel : Tbl_Trainingsgegevens .......................................................................................................................... 16 Concrete inhoud van de Tabel : Tbl_ Trainingsgegevens : .......................................................................... 17 Tabel : Tbl_Soorten ........................................................................................................................................... 18 Concrete inhoud van de Tabel : Tbl_ Soorten : ........................................................................................... 18 Tabel : Tbl_Uren ............................................................................................................................................... 19 Concrete inhoud van de Tabel : Tbl_ Uren : ................................................................................................ 19

Schermen ....................................................................................................................... 21 Ledenbeheer ..................................................................................................................................................... 23 Ledenlijst ........................................................................................................................................................... 24 Ledengegevens ................................................................................................................................................. 28 Ledenonderhoud .............................................................................................................................................. 33 Aanwezigheidsregistratie ................................................................................................................................. 35 Aanwezigheidslijst ............................................................................................................................................ 37

Robin Tillie

3


ERD

Robin Tillie

4


ERD

Robin Tillie

5


Data dictionary

Robin Tillie

6


Data dictionary Tabel : Tbl_Leden Veldnaam

Omschrijving

Voorbeeld

Veldtype

Veldlengte

Bijzondere eigenschappen

Licentienummer

Uniek licentienummer voor elk lid

OZEKA/987/85

Tekst

255

Primaire sleutel

Naam

Familienaam van het lid

De Brabandere

Tekst

40

Index met duplicaten

Voornaam

Voornaam van het lid

Camille

Tekst

40

-

Geboortedatum

Geboortedatum van het lid

19/05/1998

Datum/tijd

-

-

Geslacht

Geslacht van het lid

V

Tekst

1

Telefoonnummer

Telefoonnummer van het lid

0497/87.36.21

Tekst

13

Index met duplicaten

E-mail

E-mail adres van het lid

camille.de_brabandere@gmai.com

Tekst

40

Index met duplicaten

Groep

Relatie naar tabel Groepen Groep van de zwemmer

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Groepen

Graad

Relatie naar tabel Graad Graad van de zwemmer

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Graad

Categorie

Relatie naar tabel Categoriën Categorie van de zwemmer.

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Categorieën

Robin Tillie

-

7


Functie

Relatie naar tabel Functies Functie van het lid.

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Functies

Bestuursfunctie

Relatie naar tabel Bestuursfuncties Bestuursfunctie van het lid.

1,2,3,..

Numeriek

Lange integer

Verwijssleutel naar tbl_Bestuursfuncties

Foto

Foto van het lid.

Betaald

Status betaling lidgeld.

Update

Status of er al een update gebeurt is.

OLE-object

-

-

of

Ja/Nee

-

-

of

Ja/Nee

-

-

Concrete inhoud van de Tabel : Tbl_Leden :

Robin Tillie

8


Tabel : Tbl_Groepen Veldnaam

Omschrijving

GroepID

Uniek nummer voor elke groep

Groepsnaam

Groepsnaam

Voorbeeld

Veldtype

Veldlengte

1,2,3,..

Numeriek

Lange integer

Groep 1, groep 2, groep 3,

Tekst

40

Bijzondere eigenschappen • • •

Primaire sleutel Autonumeriek Index zonder duplicaten -

Oranje, groen, roze, blauw, rood

Concrete inhoud van de Tabel : Tbl_Groepen :

Robin Tillie

9


Tabel : Tbl_Graad Veldnaam

Omschrijving

GraadID

Uniek nummer voor elke graad

Graad

Naam van de graad

Voorbeeld

Veldtype

Veldlengte

1,2,3,...

Numeriek

Lange integer

A,B,C,Jonge Haai

Tekst

40

Bijzondere eigenschappen • • •

Primaire sleutel Autonumeriek Index zonder duplicaten -

Concrete inhoud van de Tabel : Tbl_Graad :

Robin Tillie

10


Tabel : Tbl_ Categorieën Veldnaam

Omschrijving

CategorieID

Uniek nummer voor elke categorie

Categorie

Naam van de categorie

Voorbeeld

Veldtype

Veldlengte

1,2,3,…

Numeriek

Lange integer

Eendje, benjamin, miniem, …

Tekst

40

Bijzondere eigenschappen • • •

Primaire sleutel Autonumeriek Index zonder duplicaten -

Concrete inhoud van de Tabel : Tbl_Categorieën :

Robin Tillie

11


Tabel : Tbl_Functies Veldnaam

Omschrijving

FunctieID

Uniek nummer voor elke functie

Functie

Naam van de functie

Voorbeeld

Veldtype

Veldlengte

1,2,3,…

Numeriek

Lange integer

Zwemmer, zwemschool, trainer, …

Tekst

40

Bijzondere eigenschappen • • •

Primaire sleutel Autonumeriek Index zonder duplicaten -

Concrete inhoud van de Tabel : Tbl_Functies :

Robin Tillie

12


Tabel : Tbl_Bestuursfuncties Veldnaam

Omschrijving

BestuursfunctieID

Uniek nummer voor elke bestuursfunctie

Bestuursfunctie

Naam van de bestuursfunctie

Voorbeeld

Veldtype

Veldlengte

1,2,3,…

Numeriek

Lange integer

Voorzitter, ondervoorzitter, penningmeester, webmaster, …

Tekst

40

Bijzondere eigenschappen • • •

Primaire sleutel Autonumeriek Index zonder duplicaten -

Concrete inhoud van de Tabel : Tbl_Bestuursfuncties :

Robin Tillie

13


Tabel : Tbl_Barcodes Veldnaam Barcode

Omschrijving

Voorbeeld

Veldtype

Veldlengte

Het licentienummer voor elk lid geld ook als barcode

OZEKA/987/85

Tekst

255

Bijzondere eigenschappen • • •

Primaire sleutel Verwijssleutel naar Tbl_Leden Een-op-een Relatie

Concrete inhoud van de Tabel : Tbl_Barcodes :

Robin Tillie

14


Tabel : Tbl_Aanwezigheden Veldnaam

Omschrijving

Aanwezigheidsnummer

Uniek nummer voor elke aanwezigheid

Licentienummer

Persoonlijk licentienummer van het lid

Datum

De systeemdatum van het moment van registreren

Uur_van_aankomst

De systeemtijd van het moment van registreren

Voorbeeld

Veldtype

Veldlengte

Bijzondere eigenschappen

1,2,3,…

Numeriek

Lange integer

• • •

OZEKA/987/96

Tekst

255

14/05/2010

Datum/tijd

-

16:46:24

Datum/tijd

-

Primaire sleutel Autonumeriek Index zonder Duplicaten Verwijssleutel naar tbl_Leden Index met duplicaten -

-

Concrete inhoud van de Tabel : Tbl_Aanwezigheden :

Robin Tillie

15


Tabel : Tbl_Trainingsgegevens Veldnaam

Omschrijving

Voorbeeld

Veldtype

Veldlengte

Bijzondere eigenschappen

Trainingsnummer

Uniek nummer voor elke training

1,2,3,..

Numeriek

Lange integer

• •

Primaire sleutel Autonumeriek

Trainingsgroep_1

Relatie naar tabel Groepen. De groep waarvoor de training gepland staat.

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Groepen

Trainingsgroep_2

Relatie naar tabel Groepen . De groep waarvoor de training gepland staat.

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Groepen

Trainingsgroep_3

Relatie naar tabel Groepen . De groep waarvoor de training gepland staat.

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Groepen

Trainingsgroep_4

Relatie naar tabel Groepen . De groep waarvoor de training gepland staat.

1,2,3,…

Numeriek

Lange integer

Verwijssleutel naar tbl_Groepen

Datum

Datum van de training

06/12/2009

Datum/tijd

Uur

Relatie naar tabel Uren. Uur van de geplande training

1,2,3,…

Numeriek

Robin Tillie

Lange integer

Verwijssleutel naar tbl_Uren

16


Soort

Relatie naar tabel Soorten. De soort van training

Aantal_Km

Het aantal kilometers dat er zal

1,2,3,‌

Numeriek

Lange integer

3.2

Numeriek

Dubbele

•

Verwijssleutel naar tbl_Soorten -

precisie

Concrete inhoud van de Tabel : Tbl_ Trainingsgegevens :

Robin Tillie

17


Tabel : Tbl_Soorten Veldnaam

Omschrijving

SoortID

Uniek nummer voor elke soort training

Omschrijving

Naam van de soort van de training

Voorbeeld

Veldtype

Veldlengte

1,2,3,..

Numeriek

Lange integer

Techniek, lange afstand, sprint,‌

Tekst

40

Bijzondere eigenschappen •

Primaire sleutel -

Concrete inhoud van de Tabel : Tbl_ Soorten :

Robin Tillie

18


Tabel : Tbl_Uren Veldnaam

Omschrijving

UurID

Uniek nummer voor elk uur

Uren

Naam elk uur

Voorbeeld

Veldtype

Veldlengte

1,2,3,..

Numeriek

Lange integer

20u-21u

Tekst

40

Bijzondere eigenschappen • •

Primaire sleutel Autonumeriek -

Concrete inhoud van de Tabel : Tbl_ Uren :

Robin Tillie

19


Schermen

Robin Tillie

20


Schermen Startscherm

Omschrijving : Dit is het startscherm van het programma. Hier kan je een keuze maken tussen één van de 4 delen van het project • • • •

Leden Registratie Aanwezigheden Trainingen

Robin Tillie

21


Code/procedures : Public Class cmdLeden •

Private Sub pcbLeden_Click()

Private Sub pcbScan_Click()

Private Sub pcbTrainingen_Click()

Private Sub pcbAanwezigheden_Click()

Bestandsnaam : Startscherm.vb

Robin Tillie

22


Ledenbeheer

Omschrijving : Hier kan je een keuze maken tussen één van de 2 onderdelen delen van het ledenbeheer. • •

Ledenlijst Onderhoud

Code/procedures : Public Class Ledenbeheer •

Private Sub pcbOnderhoud_Click()

Private Sub pcbLedenlijst_Click()

Bestandsnaam: Ledenbeheer.vb

Robin Tillie

23


Ledenlijst

Omschrijving: Dit is het ledenlijst scherm. Hier kan de volgende actie’s uitvoeren: • • • •

Zoeken Gevevens opvragen Ledenlijst printen Barcodes printen

Beschrijving: De datagridview wordt opgevuld met gegevens uit de tabel Leden uit de database bij het laden van de pagina.. Je kan op naam, voornaam, groepsnaam zoeken door in het tekstvak de criteria te typen en op “Zoeken” te klikken. Hierna krijg je enkel de gefilterde weergave van de datagridview te zien.

Robin Tillie

24


Code/procedures : Public Sub leden() 'SQL Code om de datagrid op te vullen : rstLeden.Open("Select licentienummer, naam, voornaam, groepsnaam From Leden, Groepen WHERE leden.groep = groepen.groepID and ( voornaam like '%" & txtzoek.Text & "%' or naam like '%" & txtzoek.Text & "%' or groepsnaam like '%" & txtzoek.Text & "%') order by groepsnaam, naam, voornaam", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) •

Private Sub Ledenlijst_Load()

Private Sub zoek_Click()

Beschrijving: Hierna krijg je de selectie te zien en kan je van deze selectie de barcodes printen door op de knop “Barcodes printen” te klikken. Hierbij wordt een Word document op de achtergrond geopend. In het document wordt er gebruik gemaakt van een tabel die opgevuld wordt met de waarden uit de (gefilterde) datagridview. Het barcodelettertype word lokaal opgehaald van op de computer.

Code/procedures : Public Class Ledenlijst

• Private Sub pcbPrintBarcodesleden_Click() 'SQL Code om de tabel op te vullen : rstLeden.Open("Select licentienummer, naam, voornaam, groepsnaam From Leden, Groepen WHERE leden.groep = groepen.groepID and ( voornaam like '%" & txtzoek.Text & "%' or naam like '%" & txtzoek.Text & "%' or groepsnaam like '%" & txtzoek.Text & "%') order by groepsnaam, naam, voornaam", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic)

Robin Tillie

25


Beschrijving: Je kan ook van deze selectie de ledenlijst printen door op de knop “Print ledenlijst” te klikken. Hierbij wordt een Word document op de achtergrond geopend. In het document wordt er gebruik gemaakt van een tabel die opgevuld wordt met de waarden uit de (gefilterde) datagridview.

Code/procedures : Public Class Ledenlijst

Private Sub pcbPrintLedenlijst_Click ()

'SQL Code om de tabel op te vullen : rstLeden.Open("Select licentienummer, naam, voornaam, groepsnaam From Leden, Groepen WHERE leden.groep = groepen.groepID and ( voornaam like '%" & txtzoek.Text & "%' or naam like '%" & txtzoek.Text & "%' or groepsnaam like '%" & txtzoek.Text & "%') order by groepsnaam, naam, voornaam", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) 'Code om de tabel in het word document op tevullen met gegevens datagrid: objRow.Cells.Item(1).Range.Text = rstLeden.Fields.Item("licentienummer").Value objRow.Cells.Item(2).Range.Text = rstLeden.Fields.Item("naam").Value objRow.Cells.Item(3).Range.Text = rstLeden.Fields.Item("voornaam").Value objRow.Cells.Item(4).Range.Text = rstLeden.Fields.Item("groepsnaam").Value

Beschrijving: Je kan de persoonlijke gegevens van een lid opvragen door het lid te selecteren en op”Gegevens” te klikken. Het licentienummer wordt in een variabele bewaard in de module en het scherm “Ledengegevens” wordt geopend

Robin Tillie

26


Code/procedures : Public Class Ledenlijst •

Private Sub pcbGegevensLidBekijken_Click()

'de weer te geven waarden in varabelen steken die gedeclareerd zijn in module selectedlicence = dgrLeden.CurrentRow.Cells(0).Value selectednaam = dgrLeden.CurrentRow.Cells(1).Value selectedvoornaam = dgrLeden.CurrentRow.Cells(2).Value selectedgroep = dgrLeden.CurrentRow.Cells(3).Value details.Show() End Sub

Bestandsnaam: Ledenlijst.vb

Robin Tillie

27


Ledengegevens

Omschrijving: Dit is het ledengegevens scherm. Hier krijg je een overzicht van alle gegevens van het lid . Je kan hier de volgende actie’s uitvoeren: • • •

Wijzigen Gegevens printen Barcode printen

Beschrijving: De gegevens van het geselecteerde lid worden opgehaald door het unieke licentienummer van het lid dat opgeslagen werd in een variabele in de module.

Robin Tillie

28


Code/procedures : Public Class Ledengegevens

Private Sub Ledengegevens_Load()

'SQL Code om gegevens op te halen : rstLidgegevens.Open(" Select naam, voornaam, licentienummer, geboortedatum, geslacht, telefoonnummer, groepsnaam, graad.graad as gr, functies.functie as fct, bestuursfuncties.bestuursfunctie as best, betaald From leden, groepen, graad , categorieën , functies , bestuursfuncties where Licentienummer like '%" & selectedlicence & "%' and graad.graadId=Leden.graad and Leden.groep=groepen.groepID and Leden.categorie=categorieën.categorieID and Leden.functie=functies.functieID and Leden.bestuursfunctie=bestuursfuncties.bestuursfunctieID order by groepsnaam, naam, voornaam", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) lblVoornaam.Text = rstLidgegevens.Fields.Item("voornaam").Value lblAchternaam.Text = rstLidgegevens.Fields.Item("naam").Value txtLicentienummer.Text = rstLidgegevens.Fields.Item("licentienummer").Value txtVoornaam.Text = rstLidgegevens.Fields.Item("voornaam").Value txtNaam.Text = rstLidgegevens.Fields.Item("naam").Value txtGeboortedatum.Text = rstLidgegevens.Fields.Item("geboortedatum").Value txtGeslacht.Text = rstLidgegevens.Fields.Item("geslacht").Value txtTelefoonnummer.Text = rstLidgegevens.Fields.Item("telefoonnummer").Value txtGroep.Text = rstLidgegevens.Fields.Item("groepsnaam").Value txtGraad.Text = rstLidgegevens.Fields.Item("gr").Value txtFunctie.Text = rstLidgegevens.Fields.Item("fct").Value txtBestuursfunctie.Text = rstLidgegevens.Fields.Item("best").Value If rstLidgegevens.Fields.Item("betaald").Value = True Then beta.Checked = True Else beta.Checked = False End If

Beschrijving: De lidgegevens kunnen hier ook afgeprint worden. Hierbij wordt een Word document op de achtergrond geopend. In het document wordt er gebruik gemaakt van bladwijzers die vervangen worden door de waarden van de tekstvelden van de gegevens van het lid.

Robin Tillie

29


Code/procedures : Public Class Ledengegevens •

Private Sub pcbPrintGegevensLid_Click()

'de bladwijzers vervangen door de waarden van de tekstvelden objDoc.Bookmarks.Item("NaamTitel").Range.Text = txtNaam.Text objDoc.Bookmarks.Item("VoornaamTitel").Range.Text = txtVoornaam.Text objDoc.Bookmarks.Item("Naam").Range.Text = txtNaam.Text objDoc.Bookmarks.Item("Voornaam").Range.Text = txtVoornaam.Text objDoc.Bookmarks.Item("Licentienummer").Range.Text = txtLicentienummer.Text objDoc.Bookmarks.Item("Geboortedatum").Range.Text = txtGeboortedatum.Text objDoc.Bookmarks.Item("Geslacht").Range.Text = txtGeslacht.Text objDoc.Bookmarks.Item("Telefoonnummer").Range.Text = txtTelefoonnummer.Text objDoc.Bookmarks.Item("Groep").Range.Text = txtGroep.Text objDoc.Bookmarks.Item("Graad").Range.Text = txtGraad.Text objDoc.Bookmarks.Item("Functie").Range.Text = txtFunctie.Text objDoc.Bookmarks.Item("Bestuursfunctie").Range.Text = txtBestuursfunctie.Text

Beschrijving: De persoonlijke barcode kan hier ook afgeprint worden. Hierbij wordt een Word document op de achtergrond geopend. In het document wordt er gebruik gemaakt van bladwijzers die vervangen worden door de waarden van de tekstvelden van de gegevens van het lid, namelijk de naam, voornaam en het licentienummer

Robin Tillie

30


Code/procedures : Public Class Ledengegevens •

Private Sub pcbPrintBarcode_Click()

Dim objWord As Microsoft.Office.Interop.Word.Application de bladwijzers vervangen met waarden tekstvelden objDoc.Bookmarks.Item("Naam").Range.Text = txtNaam.Text objDoc.Bookmarks.Item("Voornaam").Range.Text = txtVoornaam.Text objDoc.Bookmarks.Item("LicentienummerBarcode").Range.Text = txtLicentienummer.Text objDoc.Bookmarks.Item("Licentienummer").Range.Text = txtLicentienummer.Text

Robin Tillie

31


Beschrijving: Als het lid zijn lidgeld betaald heeft moet de checkbox betaald geselecteerd worden en op“wijzigen” klikken zodat de wijzigingen in de database worden opgeslagen.

Code/procedures : Public Class Ledengegevens

Private Sub pcbWijzigen_Click

'SQL Code om de database aan te passen : cnScan_2_Swim.Execute("update leden set betaald = " & beta.Checked & " where licentienummer = '" & txtLicentienummer.Text & "'"

Bestandsnaam: Ledengegevens.vb

Robin Tillie

32


Ledenonderhoud

Omschrijving: Dit is het ledenonderhoud scherm. Hier kan je de database update door op de knop “ update “ te klikken.

Beschrijving: Bij het updaten wordt er verbinding gemaakt met de PHP database van de website van de zwemclub Ozeka en worden alle gegevens bijgewerkt. Er wordt gebruik gemaakt van ODBC en ADODB. ADODB Eerst worden alle gegevens verwijderd uit de tabellen ,dan dan worden alle gegeven van de PHP database eerst opgehaald en dan ingevoegd in de programma database

Code/procedures : Public Class Ledenonderhoud •

Private Function ConnectString() As String

Private Sub pcbUpdate_Click(

'verwijderen inhoud tabellen cnScan_2_Swim.Execute("delete "delete cnScan_2_Swim.Execute("delete "delete cnScan_2_Swim.Execute("delete "delete cnScan_2_Swim.Execute("delete "delete cnScan_2_Swim.Execute("delete "delete cnScan_2_Swim.Execute("delete "delete cnScan_2_Swim.Close()

* * * * * *

)

from from from from from from

barcodes" barcodes") bestuursfuncties") functies" functies") graad" graad") groepen" groepen") categorieën" categorieën")

' overzetten van categori categorieën Cmd2.CommandText = "SELECT * FROM Categorie" i = i + 1 ' invoegen in tabel Categoriën cnScan_2_Swim.Execute("insert "insert into categorieën (categorieID,categorie) values ('" & tabel(j, 0) & "','" & tabel(j, 1) & "')")

Robin Tillie

33


' overzetten van groepen Cmd2.CommandText = "SELECT * FROM Groep" ' invoegen in tabel groepen cnScan_2_Swim.Execute("insert into groepen (groepID,groepsnaam) values ('" & tabel(j, 0) & "','" & tabel(j, 1) & "')") ' overzetten van graad Cmd2.CommandText = "SELECT * FROM Graad" ' invoegen in tabel graad cnScan_2_Swim.Execute("insert into graad (graadID,graad) values ('" & tabel(j, 0) & "','" & tabel(j, 1) & "')") ' overzetten van functie Cmd2.CommandText = "SELECT * FROM Functie" ' invoegen in tabel functie cnScan_2_Swim.Execute("insert into functies (functieID,functie) values ('" & tabel(j, 0) & "','" & tabel(j, 1) & "')") ' overzetten van bestuursfunctie Cmd2.CommandText = "SELECT * FROM Bestuursfuncties" ' invoegen in tabel bestuursfunctie cnScan_2_Swim.Execute("insert into bestuursfuncties (BestuursfunctieID,Bestuursfunctie) values ('" & tabel(j, 0) & "','" & tabel(j, 1) & "')") ' overzetten van leden Cmd1.CommandText = "SELECT * FROM Leden" ' invoegen in tabel barcodes cnScan_2_Swim.Execute("insert into barcodes (barcode) values ('" & tabel(j, 0) & "')") str = "Select licentienummer From Leden WHERE licentienummer = '" & tabel(j, 0) & "'" ' invoegen in tabel leden str = "insert into Leden (licentienummer, naam, voornaam,geboortedatum,geslacht,telefoonnummer,[email],groep,graad,categorie,functie,bestuursfunctie, [update] " & _ " ) values ( '" & tabel(j, 0) & "', '" & tabel(j, 1) & "', '" & tabel(j, 2) & _ "', '" & tabel(j, 12) & "', '" & tabel(j, 3) & "', '" & tabel(j, 10) & "', '" & _ tabel(j, 11) & "', " & tabel(j, 8) & ", " & tabel(j, 6) & ", " & _ tabel(j, 7) & ", " & tabel(j, 4) & " , " & tabel(j, 5) & ", " & 1 & " )" str = "update Leden set Leden.[update] = " & 1 & ", " & _ " naam= '" & tabel(j, 1) & "', " & _ " voornaam='" & tabel(j, 2) & "', " & _ " geboortedatum='" & tabel(j, 12) & "'," & _ " geslacht= '" & tabel(j, 3) & "', " & _ " telefoonnummer= '" & tabel(j, 10) & "', " & _ " [e-mail]='" & tabel(j, 11) & "', " & _ " groep=" & tabel(j, 8) & ", " & _ " graad=" & tabel(j, 6) & ", " & _ " categorie=" & tabel(j, 7) & ", " & _ " functie=" & tabel(j, 4) & ", " & _ " bestuursfunctie =" & tabel(j, 5) & " where licentienummer='" & tabel(j, 0) & "'" cnScan_2_Swim.Execute("delete from leden where leden.[update]=0")

Bestandsnaam: Ledenonderhoud.vb

Robin Tillie

34


Aanwezigheidsregistratie

Omschrijving: Dit is het aanwezigheidsregistratie scherm. Hier worden alle aanwezigheden geregistreerd door het scannen van de barcodes van de leden.

Beschrijving: Bij het registreren van de aanwezigheid van een lid wordt er een record toegevoegd aan de tabel Aanwezigheden met : • • •

Uniek aanwezigheidsnummer Licentienummer van het lid Datum van registreren Tijdstip van registreren

Robin Tillie

35


Code/procedures : Public Class Aanwezigheidsregistratie •

Private Sub txtLicentie_KeyPress()

cnScan_2_Swim.Execute("insert into Aanwezigheden(Licentienummer, Datum, Uur_van_aankomst) values( '" & txtLicentie.Text & "', '" & CDate(lblDatum.Text) & "', '" & CDate(lblTijd.Text) & "' )")

Bestandnaam: Aanwezigheidsregistratie.vb

Robin Tillie

36


Aanwezigheidslijst

Omschrijving: Dit is het aanwezigheidslijst scherm. Hier krijg je een overzicht van alle aanwezigheden. Je kan de volgende actie’s uitvoeren: • •

Zoeken Aanwezigheidslijst printen

Beschrijving: De datagridview wordt opgevuld met gegevens uit de tabel Aanwezigheden uit de database bij het laden van de pagina. Je kan op groep, graad, categorie, … zoeken door gebruik te maken van de comboboxen.. De comboboxen worden automatisch opgevuld met de gegevens uit de database. datab Voor het activeren van een zoekfilter selecteer de checkbox van de te gebruiken zoekfilter en selecteer in de combobox de criteria waarop gezocht moet worden en klik op “Zoeken”. “Zoeken” Hierna krijg je enkel de gefilterde weergave van de datagridview.

Robin Tillie

37


Code/procedures : Public Class Aanwezigheidslijst •

Private Sub Aanwezigheidslijst_Load()

'SQL Code om de comboboxen op te vullen met waarde uit tabel : rstGroepen.Open("Select * From Groepen ", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) daGroepen.Fill(dtGroepen, rstGroepen) cmbGroep.DataSource = dtGroepen cmbGroep.DisplayMember = "Groepsnaam" cmbGroep.ValueMember = "GroepId" rstGraden.Open("Select * From Graad ", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) daGraden.Fill(dtGraden, rstGraden) cmbGraad.DataSource = dtGraden cmbGraad.DisplayMember = "Graad" cmbGraad.ValueMember = "Graadid" rstFuncties.Open("Select * From Functies", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) daFuncties.Fill(dtFuncties, rstFuncties) cmbFunctie.DataSource = dtFuncties cmbFunctie.DisplayMember = "Functie" cmbFunctie.ValueMember = "FunctieId" rstBestuursfuncties.Open("Select * From Bestuursfuncties", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) daBestuursfuncties.Fill(dtBestuursfuncties, rstBestuursfuncties) cmbBestuursfunctie.DataSource = dtBestuursfuncties cmbBestuursfunctie.DisplayMember = "Bestuursfunctie" cmbBestuursfunctie.ValueMember = "Bestuursfunctieid" rstCategoriëen.Open("Select * From Categorieën", cnScan_2_Swim, ADODB.CursorTypeEnum.adOpenDynamic) daCategoriëen.Fill(dtCategoriëen, rstCategoriëen) cmbCategorie.DataSource = dtCategoriëen cmbCategorie.DisplayMember = "Categorie" cmbCategorie.ValueMember = "Categorieid" •

Private Sub cbxgroep_CheckedChanged()

Public Class Aanwezigheidslijst

Private Sub pcbZoeken_Click()

'SQL Code om datagrid op te vullen met waarden uit tabel : sql = "SELECT Leden.Licentienummer, Leden.naam , Leden.voornaam , Count(Aanwezigheden.Licentienummer) AS Aantal_Keer, betaald FROM Leden LEFT JOIN Aanwezigheden ON Leden.Licentienummer = Aanwezigheden.Licentienummer "

Robin Tillie

38


'Als er een checkbox aangevinkt is : If cbxBestuursfunctie.Checked = True Or cbxFunctie.Checked = True Or cbxGraad.Checked = True Or cbxgroep.Checked = True Or cbxCategorie.Checked = True Or cbxBegindatum.Checked = True Or cbxEinddatum.Checked = True Or cbxBetalers.Checked = True Or cbxNiet_Betalers.Checked = True Then sql = sql & " where " End If 'SQL statement samenstellen uit de elementen die geselecteerd zijn: If cbxBestuursfunctie.Checked = True Then sql = sql & " Bestuursfunctie = " & cmbBestuursfunctie.SelectedValue End If If cbxFunctie.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " functie = " & cmbFunctie.SelectedValue End If If cbxGraad.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " graad = " & cmbGraad.SelectedValue End If If cbxgroep.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " groep = " & cmbGroep.SelectedValue End If If cbxCategorie.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " Categorie = " & cmbCategorie.SelectedValue End If If cbxBegindatum.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " (((Aanwezigheden.Datum)>=#" & FormatDateTime(CDate(DateTimePickerBegin.Value), DateFormat.ShortDate) & "#))" End If

Robin Tillie

39


If cbxEinddatum.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " (((Aanwezigheden.Datum)<=#" & FormatDateTime(CDate(DateTimePickerEind.Value), DateFormat.ShortDate) & "#))" End If If cbxBetalers.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " betaald = true" End If If cbxNiet_Betalers.Checked = True Then If vlag Then sql = sql & " and " End If vlag = True sql = sql & " betaald = false" End If sql = sql & " GROUP BY Leden.Licentienummer, Leden.naam, Leden.voornaam, betaald order by Leden.naam, Leden.voornaam"

Robin Tillie

40


Beschrijving: Het overzicht van de aanwezigheden kan hier ook afgeprint worden. Hierbij wordt een Word document op de achtergrond geopend. In het document wordt er gebruik gemaakt van een tabel die opgevuld wordt met de waarden uit de (gefilterde) datagridview.

Code/procedures : Public Class Aanwezigheidslijst

â&#x20AC;˘

Private Sub pcbPrintenOverzicht_Click()

objRow.Cells.Item(1).Range.Text = rstAanw.Fields.Item("licentienummer").Value objRow.Cells.Item(2).Range.Text = rstAanw.Fields.Item("naam").Value objRow.Cells.Item(3).Range.Text = rstAanw.Fields.Item("voornaam").Value objRow.Cells.Item(4).Range.Text = rstAanw.Fields.Item("aantal_keer").Value If rstAanw.Fields.Item("betaald").Value = False Then objRow.Cells.Item(5).Range.Text = "nee" Else objRow.Cells.Item(5).Range.Text = "ja" End If

Bestandsnaam: Aanwezigheidslijst.vb

Robin Tillie

41


Scan2Swim DB_SQL