Option Compare Database
Public Function TeBehalenCaramboles(rbbnr As Integer, Afd_spels As Long) As Integer
Dim con As Object
Dim rst As Object
Dim Spelsoort As Integer
Dim tabelnr As Integer
Dim gemiddelde As Double
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [afd-spels] WHERE [Afd_spelnr] = " & Afd_spels
rst.Open SqlStr, con, 1
If (rst.EOF) Then
MsgBox "Afdeling - spelsoort niet gevonden"
rst.Close
Set rst = Nothing
Set con = Nothing
Exit Function
End If
tabelnr = rst![Tabelnummer]
Spelsoort = rst![Spelsoortnr]
rst.Close
Set rst = Nothing
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [Gemiddelden] WHERE [speler] = " & rbbnr
SqlStr = SqlStr & " AND [spelsoort] = " & Spelsoort
rst.Open SqlStr, con, 1
If (rst.EOF) Then
gemiddelde = 0
Else
gemiddelde = rst![gemiddelde]
End If
rst.Close
Set rst = Nothing
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [rekentabel] WHERE [TNR] = " & tabelnr
SqlStr = SqlStr & " AND [MIN] <= " & gemiddelde
rst.Open SqlStr, con, 1
If (rst.EOF) Then
MsgBox "Geen tabel record"
rst.Close
Set rst = Nothing
Set con = Nothing
Exit Function
End If
rst.MoveLast
TeBehalenCaramboles = rst![tehalen]
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function BerekenGemiddelde(rbbnr As Integer, Spelsoort As Integer) As Double
Dim con As Object
Dim rst As Object
Dim Caramboles As Double
Dim beurten As Integer
Dim gemiddelde As Double
Dim Hulpstring As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.RecordSet")
' eerst voor de thuiswedstrijden
Hulpstring = "SELECT SUM(thuiscaramb)As [Caramboles], SUM(gespeelde_beurten) As [Beurten]"
Hulpstring = Hulpstring & " FROM [afd-spels] INNER JOIN (competitie INNER JOIN "
Hulpstring = Hulpstring & "(wedstrijd INNER JOIN partij ON wedstrijd.Wedstrijdnr = partij.wedstrijdnr)"
Hulpstring = Hulpstring & "ON competitie.Copetitienr = wedstrijd.competitienr) ON "
Hulpstring = Hulpstring & "[afd-spels].Afd_spelnr = competitie.Afd_spel"
Hulpstring = Hulpstring & " WHERE [partij]![Thuisspeler] = " & rbbnr & " AND "
Hulpstring = Hulpstring & "[afd-spels]![spelsoortnr] = " & Spelsoort
rst.Open Hulpstring, con, 1
If IsNull(rst!Caramboles) Then
Caramboles = 0
Else
Caramboles = rst!Caramboles
End If
If IsNull(rst!beurten) Then
beurten = 0
Else
beurten = rst!beurten
End If
' dan voor de uitwedstrijden
rst.Close
Hulpstring = "SELECT SUM(uitcaramb)As [Caramboles], SUM(gespeelde_beurten) As [Beurten]"
Hulpstring = Hulpstring & " FROM [afd-spels] INNER JOIN (competitie INNER JOIN "
Hulpstring = Hulpstring & "(wedstrijd INNER JOIN partij ON wedstrijd.Wedstrijdnr = partij.wedstrijdnr)"
Hulpstring = Hulpstring & "ON competitie.Copetitienr = wedstrijd.competitienr) ON "
Hulpstring = Hulpstring & "[afd-spels].Afd_spelnr = competitie.Afd_spel"
Hulpstring = Hulpstring & " WHERE [partij]![Uitspeler] = " & rbbnr & " AND "
Hulpstring = Hulpstring & "[afd-spels]![spelsoortnr] = " & Spelsoort
rst.Open Hulpstring, con, 1
If IsNull(rst!Caramboles) Then
Caramboles = Caramboles + 0
Else
Caramboles = Caramboles + rst!Caramboles
End If
If IsNull(rst!beurten) Then
beurten = beurten + 0
Else
beurten = beurten + rst!beurten
End If
' eerst het ruwe gemiddelde
Caramboles = Caramboles * 1000
If beurten = 0 Then
beurten = 1
End If
gemiddelde = Caramboles / beurten
' en dan afronden op drie cijfers achter de komma
gemiddelde = Fix(gemiddelde + 0.5)
BerekenGemiddelde = gemiddelde / 1000
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Aantal_Punten(Caramboles As Integer, Te_Halen As Integer, Bonus As Integer, winstpnt As Integer, Car_tegensp As Integer, Te_halen_tegensp As Integer) As Double
Dim Punten As Double
Dim punten_tegenst As Double
Dim Heel_punten As Integer
Dim Breuk As Integer
If Te_Halen <> 0 Then
Punten = (Caramboles / Te_Halen)
End If
' Bepaal punten
If Te_halen_tegensp <> 0 Then
punten_tegenst = (Car_tegensp / Te_halen_tegensp)
End If
If Punten >= 1 Then
Punten = Punten * winstpnt
If punten_tegenst >= 1 Then
Punten = Punten + (Bonus / 2)
Else
Punten = Punten + Bonus
End If
Else
Punten = Punten * winstpnt
End If
' Rond af op 0,5 NAAR BENEDEN
Heel_punten = Int(Punten)
Breuk = (Punten - Heel_punten) * 100
' RD afronden op half weggehaald
' If Breuk < 50 Then
' Breuk = 0
' Else
' Breuk = 50
' End If
Punten = Heel_punten + (Breuk / 100)
Aantal_Punten = Punten
'Aantal_Punten = Round(Punten, 2)
If Aantal_Punten > 10 Then Aantal_Punten = 10
End Function
Public Function Haal_Gemiddelde_Op(rbbnr As Integer, Spelsoort As Integer) As Double
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [gemiddelden] WHERE [speler] = " & rbbnr
SqlStr = SqlStr & " AND [spelsoort] = " & Spelsoort
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Else
Haal_Gemiddelde_Op = rst![gemiddelde]
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Herberekenen_Op(rbbnr As Integer, Spelsoort As Integer) As Boolean
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [gemiddelden] WHERE [speler] = " & rbbnr
SqlStr = SqlStr & " AND [spelsoort] = " & Spelsoort
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Else
Haal_Herberekenen_Op = rst![Herberekenen]
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Aant_Wedstr_Op(rbbnr As Integer, Spelsoort As Integer) As Integer
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT [wedstrijd].[Wedstrijdnr] FROM [afd-spels] INNER JOIN "
SqlStr = SqlStr & "(competitie INNER JOIN (wedstrijd INNER JOIN partij "
SqlStr = SqlStr & "ON wedstrijd.Wedstrijdnr = partij.wedstrijdnr) ON "
SqlStr = SqlStr & "competitie.Copetitienr = wedstrijd.competitienr) ON "
SqlStr = SqlStr & "[afd-spels].Afd_spelnr = competitie.Afd_spel"
SqlStr = SqlStr & " WHERE ([afd-spels].Spelsoortnr = " & Spelsoort
SqlStr = SqlStr & " And (partij.thuisspeler = " & rbbnr & " Or partij.Uitspeler = " & rbbnr
SqlStr = SqlStr & ")) GROUP BY wedstrijd.Wedstrijdnr; "
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Haal_Aant_Wedstr_Op = 0
Else
rst.MoveLast
Haal_Aant_Wedstr_Op = rst.RecordCount
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Aant_Partijen_Op(rbbnr As Integer, Spelsoort As Integer) As Integer
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT Count([partij].[bordnr]) AS Aantal_partijen"
SqlStr = SqlStr & " FROM [afd-spels] INNER JOIN (competitie INNER JOIN (wedstrijd INNER JOIN partij ON wedstrijd.Wedstrijdnr = partij.wedstrijdnr) ON competitie.Copetitienr = wedstrijd.competitienr) ON [afd-spels].Afd_spelnr = competitie.Afd_spel"
SqlStr = SqlStr & " WHERE ((([afd-spels].Spelsoortnr)= " & Spelsoort
SqlStr = SqlStr & ") AND ((partij.thuisspeler)= " & rbbnr & ")) OR ((([afd-spels].Spelsoortnr)="
SqlStr = SqlStr & Spelsoort & ") AND ((partij.uitspeler) = " & rbbnr & "));"
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Haal_Aant_Partijen_Op = 0
Else
Haal_Aant_Partijen_Op = rst!Aantal_partijen
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Vereniging_Op(rbbnr As Integer, Spelsoort As Integer) As Integer
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT vereniging.Verenigingsnr As Vereniging FROM vereniging INNER JOIN ([afd-spels] INNER JOIN (competitie INNER JOIN "
SqlStr = SqlStr & "(team INNER JOIN teamleden ON (team.teamnr = teamleden.Teamnr) AND (team.teamnr = teamleden.Teamnr)) "
SqlStr = SqlStr & "ON competitie.Copetitienr = team.Competitienr) ON [afd-spels].Afd_spelnr = competitie.Afd_spel) "
SqlStr = SqlStr & "ON (vereniging.Verenigingsnr = team.Vereniging) AND (vereniging.Verenigingsnr = team.Vereniging)"
SqlStr = SqlStr & " WHERE (((teamleden.Lidnr)= " & rbbnr & ") AND (([afd-spels].Spelsoortnr)= " & Spelsoort & "));"
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Haal_Vereniging_Op = ""
Else
Haal_Vereniging_Op = rst!Vereniging
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Ver_Oms_Op(Vereniging As Integer) As String
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT Naam FROM [Vereniging] WHERE [Verenigingsnr] = " & Vereniging & ";"
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Haal_Ver_Oms_Op = ""
Else
Haal_Ver_Oms_Op = rst!Naam
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Afd_spel_Op(rbbnr As Integer, Spelsoort As Integer) As Long
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT competitie.Afd_spel As Afd_spel FROM [afd-spels] INNER JOIN ((competitie INNER JOIN team ON"
SqlStr = SqlStr & " competitie.Copetitienr = team.Competitienr) INNER JOIN teamleden ON "
SqlStr = SqlStr & "(team.teamnr = teamleden.Teamnr) AND (team.teamnr = teamleden.Teamnr)) "
SqlStr = SqlStr & "ON [afd-spels].Afd_spelnr = competitie.Afd_spel WHERE (((teamleden.Lidnr)="
SqlStr = SqlStr & rbbnr & ") AND (([afd-spels].Spelsoortnr)=" & Spelsoort & "));"
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Haal_Afd_spel_Op = ""
Else
Haal_Afd_spel_Op = rst!Afd_spel
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function Haal_Afd_spel_Oms_Op(Afd_spels As Long) As String
Dim con As Object
Dim rst As Object
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT Omschrijving FROM [afd-spels] WHERE [Afd_spelnr] = " & Afd_spels & ";"
rst.Open SqlStr, con, 1
If (rst.EOF) Then
Haal_Afd_spel_Oms_Op = ""
Else
Haal_Afd_spel_Oms_Op = rst!Omschrijving
End If
rst.Close
Set rst = Nothing
Set con = Nothing
End Function
Public Function TeBehalenNieuwCaramboles(Nw_Gem As Integer, Afd_spels As Long) As Integer
Dim con As Object
Dim rst As Object
Dim Spelsoort As Integer
Dim tabelnr As Integer
Dim gemiddelde As Double
Dim SqlStr As String
Set con = Application.CurrentProject.Connection
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [afd-spels] WHERE [Afd_spelnr] = " & Afd_spels
rst.Open SqlStr, con, 1
If (rst.EOF) Then
MsgBox "Afdeling - spelsoort niet gevonden"
rst.Close
Set rst = Nothing
Set con = Nothing
Exit Function
End If
tabelnr = rst![Tabelnummer]
Spelsoort = rst![Spelsoortnr]
rst.Close
Set rst = Nothing
Set rst = CreateObject("ADODB.Recordset")
SqlStr = "SELECT * from [rekentabel] WHERE [TNR] = " & tabelnr
SqlStr = SqlStr & " AND [MIN] <= " & Nw_Gem
rst.Open SqlStr, con, 1
If (rst.EOF) Then
MsgBox "Geen tabel record"
rst.Close
Set rst = Nothing
Set con = Nothing
Exit Function
End If
rst.MoveLast
TeBehalenNieuwCaramboles = rst![tehalen]
rst.Close
Set rst = Nothing
Set con = Nothing
End Function