Private Sub VullenUitvoerGegevensMestbeleid2_Click()
Dim DBase As DAO.Database
Dim strSQL1, MijnVar, strSQL4 As String
Dim rst1, UitvoerGegevensMestbeleid1 As DAO.Recordset
Dim Aantal, Vastlegging1, Veestapel1, Tekst28, kVEMUTD, Tekst29, Tekst27, Eiwit, Vet, StartTijd, EindTijd, TotalTime
Dim GrasKenKDs, VemBehoefte1, KuilVem1, KuilKgDs1, VemBehoefte, MaisKenKDs, MaisVem1, KuilDs09, MaisDs09, KuilVem09, MaisVem09
Dim tmp, NEffBex, PEffBex, VemBehoefteKgDs1, VoerEff, Vastlegging2, Veestapel2, C, BexN1, BexP1, Kuubs, NBex, PBex, VemBehoefte09
Dim WeideKgDs, GVEAant1, GVEDag, WeideDs09, WeideKgDsDag, ZomerstalMaandenVersGras, WeideVem, WeideVem09, BijpVem, RuwVem, KVVem, KuilVem, MaisVem
Dim PercVEMWeide, PercVEMKuil, PercVEMMais, PercVEMBijp, PercVEMRV, PercVEMKV, MaisKAanvVem, Bijprod1VoorraadVem, Ruwvoer1VoorraadVem, Kv1VoorraadVem
Dim VervluchtingN, VervluchtingN09, VervluchtigingMk, VervluchtigingMM, VervluchtigingGVEtot, GVE, NBedrijf, PBedrijf, AanvOrgN, AanvOrgP, AfOrgP, AfOrgN
Dim VoorraadMutatieKmN, VoorraadMutatieKmP, VoorraadMutN, VoorraadMutP, NMestBexBedrijf, PMestBexBedrijf, BedrijfsSpecifiekNettoN, BedrijfsSpecifiekNettoN09
Dim BedrijfsSpecifiekNettoP, BedrijfsSpecifiekNettoP09, Code1
'Dim Code1, Code1997 As Integer
StartTijd = Timer
'Octafish:
MijnVar = "Bex"
'Code1997 = 1
For Each C In Array(2007, 2008, 2009, 2010, 2011)
'strSQL1 = "Select * From UitvoerGegevensMestbeleid Where ([JAAR] = 2007 Or [JAAR] = 2008) AND [Gemengd] = '" & MijnVar & "' AND [VeestapelN] > 0 Order by [StudiegroepCode]"
strSQL1 = "Select * From UitvoerGegevensMestbeleid Where [JAAR] = " & C & " AND [Gemengd] = '" & MijnVar & "' AND [VeestapelN] > 0 Order by [StudiegroepCode]"
'tmp = InputBox("", "", strSQL1)
Set DBase = CurrentDb
Set rst1 = DBase.OpenRecordset(strSQL1)
If rst1.RecordCount <> 0 Then
rst1.MoveLast
rst1.MoveFirst
Do While Not rst1.EOF
StudiegroepCode1 = rst1![StudiegroepCode].Value
Jaar1 = rst1![Jaar].Value
[B] Code1 = rst1![CodeHM].Value[/B]
If Code1 <> 1 Then GoTo RST1MoveNext:
Gemengd1 = rst1![Gemengd].Value
NEffBex = 0
PEffBex = 0
VoerEff = 0
kVEMUTD = 0
NBex = 0
PBex = 0
VemBehoefte = 0
WeideKgDsDag = 0
PercVEMWeide = 0
PercVEMKuil = 0
PercVEMMais = 0
PercVEMBijp = 0
PercVEMRV = 0
PercVEMKV = 0
VervluchtigingMM = 0
VervluchtigingMk = 0
VervluchtigingGVEtot = 0
NMestBexBedrijf = 0
PMestBexBedrijf = 0
Select Case C
Case 2007, 2008
Vastlegging1 = rst1![VastleggingN].Value
Veestapel1 = rst1![VeestapelN].Value
Vastlegging2 = rst1![VastleggingP].Value
Veestapel2 = rst1![VeestapelP].Value
BexN1 = rst1![BedrijfsSpecifiekNettoN].Value
BexP1 = rst1![BedrijfsSpecifiekNettoP].Value
Kuubs = rst1![OpslagKuub].Value
VemBehoefte1 = rst1![VemBehoefte].Value
KuilVem1 = rst1![KuilVem].Value
KuilKgDs1 = rst1![KuilKgDs].Value
WeideKgDs = rst1![WeideKgDs].Value
WeideVem = rst1![WeideVem].Value
VervluchtingN = rst1![VervluchtigingN].Value
BedrijfsSpecifiekNettoN = rst1![BedrijfsSpecifiekNettoN].Value
BedrijfsSpecifiekNettoP = rst1![BedrijfsSpecifiekNettoP].Value
Case Else
Vastlegging1 = rst1![VastleggingN09].Value
Veestapel1 = rst1![VeestapelN09].Value
Vastlegging2 = rst1![VastleggingP09].Value
Veestapel2 = rst1![VeestapelP09].Value
BexN1 = rst1![BedrijfsSpecifiekNettoN09].Value
BexP1 = rst1![BedrijfsSpecifiekNettoP09].Value
Kuubs = rst1![OpslagKuub].Value
VemBehoefte09 = rst1![VemBehoefte09].Value
KuilVem09 = rst1![KuilVem09].Value
MaisVem09 = rst1![MaisVem09].Value
KuilDs09 = rst1![KuilDs09].Value
MaisDs09 = rst1![MaisDs09].Value
WeideDs09 = rst1![WeideDs09].Value
WeideVem09 = rst1![WeideVem09].Value
VervluchtingN09 = rst1![VervluchtigingN09].Value
BedrijfsSpecifiekNettoN09 = rst1![BedrijfsSpecifiekNettoN09].Value
BedrijfsSpecifiekNettoP09 = rst1![BedrijfsSpecifiekNettoP09].Value
End Select
VemBehoefteKgDs1 = rst1![VemBehoefteKgDs].Value
Call InvoerGegevensMestbeleid1(StudiegroepCode1, Jaar1, Code1, Gemengd1, Vet, Eiwit, Tekst27, _
Tekst28, Tekst29, GrasKenKDs, MaisKenKDs, GVEAant1, GVEDag, ZomerstalMaandenVersGras, _
MaisKAanvVem, Bijprod1VoorraadVem, Ruwvoer1VoorraadVem, Kv1VoorraadVem, _
VoorraadMutN, VoorraadMutP)
Call InvoerGegevensMestbeleid2(StudiegroepCode1, Jaar1, Code1, Gemengd1, kVEMUTD, GVE)
Call InvoerGegevensMestbeleid3(StudiegroepCode1, Jaar1, Code1, AanvOrgN, AanvOrgP, AfOrgP, AfOrgN)
If IsEmpty(Tekst28) Then GoTo RST1MoveNext:
If IsEmpty(kVEMUTD) Then GoTo RST1MoveNext:
If Veestapel1 = 0 Then GoTo RST1MoveNext:
NEffBex = (Tekst28 + Vastlegging1) / Veestapel1 * 100
PEffBex = Round((Tekst29 + Vastlegging2) / Veestapel2 * 100, 0)
VoerEff = (Tekst27 * (0.337 + (0.116 * Vet) + (0.06 * Eiwit))) / VemBehoefteKgDs1
NBex = BexN1 / (Kuubs * 2)
PBex = BexP1 / (Kuubs * 2)
If C = 2007 Or C = 2008 Then
If GrasKenKDs > 0 Then
VemBehoefte = (VemBehoefte1 + KuilVem1 * (100 - KuilKgDs1 / GrasKenKDs * 100) / 100) / VemBehoefte1 * 100
Else
VemBehoefte = Empty
End If
If WeideKgDs = 0 Or GVEAant1 = 0 Or GVEDag = 0 Then
Else
WeideKgDsDag = Round(WeideKgDs / GVEDag / GVEAant1, 1)
End If
'PercVem
PercVEMWeide = WeideVem / VemBehoefte1 * 100
PercVEMKuil = KuilVem / VemBehoefte1 * 100
PercVEMMais = MaisKAanvVem / VemBehoefte1 * 100
PercVEMBijp = Bijprod1VoorraadVem / VemBehoefte1 * 100
PercVEMRV = Ruwvoer1VoorraadVem / VemBehoefte1 * 100
PercVEMKV = Kv1VoorraadVem / VemBehoefte1 * 100
If Tekst27 > 0 Then VervluchtigingMM = VervluchtingN / (Tekst27 * (0.337 + (0.116 * Vet) + (0.06 * Eiwit))) * 1000
If GVEAant1 > 0 Then VervluchtigingMk = VervluchtingN / GVEAant1
If GVE > 0 Then VervluchtigingGVEtot = VervluchtingN / GVE
NMestBexBedrijf = BedrijfsSpecifiekNettoN + AanvOrgN - AfOrgN - VoorraadMutN
PMestBexBedrijf = BedrijfsSpecifiekNettoP + AanvOrgP - AfOrgP - VoorraadMutP
If IsNull(NMestBexBedrijf) Then NMestBexBedrijf = 0
If IsNull(PMestBexBedrijf) Then PMestBexBedrijf = 0
Else
'2009 en verder
If GrasKenKDs > 0 Then
If KuilDs09 = 0 Then
VemBehoefte = (VemBehoefte09 + (KuilVem09 * 0) + MaisVem09 * (100 - MaisDs09 / MaisKenKDs * 100) / 100) / VemBehoefte09 * 100
End If
If MaisKenKDs = 0 Then
VemBehoefte = (VemBehoefte09 + KuilVem09 * (100 - KuilDs09 / GrasKenKDs * 100) / 100 + (MaisVem09 * 0)) / VemBehoefte09 * 100
End If
If KuilDs09 = 0 And MaisKenKDs = 0 Then
VemBehoefte = (VemBehoefte09 + (KuilVem09 * 0) + (MaisVem09 * 0)) / VemBehoefte09 * 100
End If
If KuilDs09 > 0 And MaisKenKDs > 0 Then
VemBehoefte = (VemBehoefte09 + KuilVem09 * (100 - KuilDs09 / GrasKenKDs * 100) / 100 + MaisVem09 * (100 - MaisDs09 / MaisKenKDs * 100) / 100) / VemBehoefte09 * 100
End If
Else
VemBehoefte = Empty
End If
If WeideDs09 = 0 Or ZomerstalMaandenVersGras = 0 Or GVEAant1 = 0 Then
Else
WeideKgDsDag = Round(WeideDs09 / (ZomerstalMaandenVersGras * 30.5) / GVEAant1, 1)
End If
'PercVem
PercVEMWeide = WeideVem09 / VemBehoefte09 * 100
PercVEMKuil = KuilVem09 / VemBehoefte09 * 100
PercVEMMais = MaisVem09 / VemBehoefte09 * 100
PercVEMBijp = Bijprod1VoorraadVem / VemBehoefte09 * 100
PercVEMRV = Ruwvoer1VoorraadVem / VemBehoefte09 * 100
PercVEMKV = Kv1VoorraadVem / VemBehoefte09 * 100
If Tekst27 > 0 Then VervluchtigingMM = VervluchtingN09 / (Tekst27 * (0.337 + (0.116 * Vet) + (0.06 * Eiwit))) * 1000
If GVEAant1 > 0 Then VervluchtigingMk = VervluchtingN09 / GVEAant1
If GVE > 0 Then VervluchtigingGVEtot = VervluchtingN09 / GVE
NMestBexBedrijf = BedrijfsSpecifiekNettoN09 + AanvOrgN - AfOrgN - VoorraadMutN
PMestBexBedrijf = BedrijfsSpecifiekNettoP09 + AanvOrgP - AfOrgP - VoorraadMutP
If IsNull(NMestBexBedrijf) Then NMestBexBedrijf = 0
If IsNull(PMestBexBedrijf) Then PMestBexBedrijf = 0
End If
strSQL4 = "Select * From UitvoerGegevensMestbeleid2 Where [StudiegroepCode] = '" & StudiegroepCode1 & "' And [CodeHM] = " & Code1 & " AND [JAAR] = " & Jaar1 & " AND [Gemengd] = '" & Gemengd1 & "'"
With DBase.OpenRecordset(strSQL4)
If .RecordCount > 0 Then
.Delete
End If
'Stop
.AddNew
.Fields("StudiegroepCode").Value = StudiegroepCode1
.Fields("Jaar").Value = Jaar1
.Fields("Code").Value = Code1
.Fields("Gemengd").Value = Gemengd1
.Fields("BerekenDatumMestbeleid").Value = Time()
.Fields("NEfficientBex").Value = Round(NEffBex, 0)
.Fields("PEfficientBex").Value = Round(PEffBex, 0)
.Fields("VoerEfficientBex").Value = Round(VoerEff, 2)
.Fields("HUTDkVEMBenutting").Value = kVEMUTD
.Fields("NBex").Value = Round(NBex, 1)
.Fields("PBex").Value = Round(PBex, 1)
.Fields("VEMDekkingBex").Value = Round(VemBehoefte, 0)
.Fields("WeideKgDsDag").Value = Round(WeideKgDsDag, 1)
.Fields("PercKvemWeidegras").Value = Round(PercVEMWeide, 0)
.Fields("PercKvemKuilgras").Value = Round(PercVEMKuil, 0)
.Fields("PercKvemMaïs").Value = Round(PercVEMMais, 0)
.Fields("PercKvemBijproducten").Value = Round(PercVEMBijp, 0)
.Fields("PercKvemOvRuwvoer").Value = Round(PercVEMRV, 0)
.Fields("PercKvemKrachtvoer").Value = Round(PercVEMKV, 0)
.Fields("NH3Emmissie1000KgMM").Value = Round(VervluchtigingMM, 1)
.Fields("NH3EmmissieMelkKoe").Value = Round(VervluchtigingMk, 1)
.Fields("NH3EmmissieGVEAanw").Value = Round(VervluchtigingGVEtot, 1)
.Fields("NMestBexBedrijf").Value = Round(NMestBexBedrijf, 0)
.Fields("PMestBexBedrijf").Value = Round(PMestBexBedrijf, 0)
.Update
.Close
End With
RST1MoveNext:
rst1.MoveNext
Loop
Else
End If
rst1.Close
Next C
EindTijd = Timer
TotalTime = Round((EindTijd - StartTijd) / 60, 0)
MsgBox "Tabel UitvoerGegevensMestbeleid2 gevuld en duurde " & TotalTime & " minuten!"
End Sub