Peter,
Nee, ik kan niets invoeren. Het grid accepteert geen invoer: er gebeurt niets. Hier is de code. Het bestand verzenden lukt niet. Bij verzenden wordt er .log achter geplakt als extra extensie en daar kom ik niet omheen. Vandaar de code in de tekst. Sorry.
Hier is de code die gebruikt wordt:
Dim DividendenMatrix()
Private Sub Command1_Click()
' Opvragen dividendgegevens.
If Aanroep2 = "Followup opties" Then
' WijzigenDividenden ' Activeren wanneer gebruikt bij opties.
Else
datDividenden.Recordset.Edit
datDividenden.Recordset.Update
DBGrid2.SetFocus
End If
End Sub
Private Sub Command10_Click()
Call AfdrukkenDividenden(DividendenMatrix(), Teller, TotaalContantDividend, TotaalStockDividendGeld, TotaalStockDividendAantal, TotaalKostenDividend, TotaalDividendBelasting)
End Sub
Private Sub Command2_Click()
' Opslaan in database
On Error GoTo FoutVerwijder
datDividenden.Recordset.Delete
datDividenden.Recordset.MoveNext
' Als het laatste record werd verwijderd, ga naar het vorige record (welke nu het laatste record is).
If datDividenden.Recordset.EOF = True Then
datDividenden.Recordset.MovePrevious
End If
DBGrid2.SetFocus
Exit Sub
FoutVerwijder:
Foutbron = Err.Number & " " & Err.Description & " in Verwijder"
Call frmInvestor.WriteLOG("---< " & App.Title & " geeft >---" & Foutbron)
Resume Next
End Sub
Private Sub Command3_Click()
' Ga naar het laatste record zodat de rij Voeg toe zichtbaar wordt.
datDividenden.Recordset.MoveLast
' Verplaats de cursor naar rij Voeg toe.
DBGrid2.row = DBGrid2.row + 1
DBGrid2.SetFocus
End Sub
Private Sub Command4_Click()
' Eerste dividendregel
datDividenden.Recordset.MoveFirst
DBGrid2.SetFocus
End Sub
Private Sub Command5_Click()
' Volgende dividendregel.
datDividenden.Recordset.MoveNext
' Houd het current record weg van EOF, wat geen geldige positie is.
If datDividenden.Recordset.EOF = True Then
datDividenden.Recordset.MovePrevious
End If
DBGrid2.SetFocus
End Sub
Private Sub Command6_Click()
' Vorige dividendregel
datDividenden.Recordset.MovePrevious
' Houd het current record weg van BOF, wat geen geldige positie is.
If datDividenden.Recordset.BOF = True Then
datDividenden.Recordset.MoveNext
End If
DBGrid2.SetFocus
End Sub
Private Sub Command7_Click()
datDividende.Recordset.MoveLast
DBGrid2.SetFocus
End Sub
Public Sub AnalyseDividenden()
Dim Teller As Integer
ReDim DividendenMatrix(1000, 22)
Dim TotaalContantDividend, TotaalStockDividendGeld, TotaalStockDividendAantal, TotaalKostenDividend, TotaalDividendBelasting
Teller = 1
datDividenden.Recordset.MoveFirst
Do While datDividenden.Recordset.EOF = False
If datDividenden.Recordset("ContantDividend") > 0 Or datDividenden.Recordset("StockDividendGeld") <> 0 Or datDividenden.Recordset("StockDividendAantal") <> 0 Then
DividendenMatrix(Teller, 1) = datDividenden.Recordset("Symbool")
If IsNull(datDividenden.Recordset("NaamAandeel")) Then
datDividenden.Recordset.Edit
datDividenden.Recordset("NaamAandeel") = datDividenden.Recordset("Symbool ")
datDividenden.Recordset.Update
End If
DividendenMatrix(Teller, 2) = datDividenden.Recordset("NaamAandeel")
DividendenMatrix(Teller, 3) = datDividenden.Recordset("ContantDividend")
DividendenMatrix(Teller, 4) = datDividenden.Recordset("StockDividendGeld")
DividendenMatrix(Teller, 5) = datDividenden.Recordset("StockDividendAantal")
DividendenMatrix(Teller, 6) = datDividenden.Recordset("DatumContantDividend")
DividendenMatrix(Teller, 7) = datDividenden.Recordset("DatumStockDividendAantal")
DividendenMatrix(Teller,
= datDividenden.Recordset("DatumStockDividendGeld")
DividendenMatrix(Teller, 9) = datDividenden.Recordset("KostenDividend")
DividendenMatrix(Teller, 10) = datDividenden.Recordset("Dividendbelasting")
Teller = Teller + 1
datDividenden.Recordset.MoveNext
Else
datDividenden.Recordset.MoveNext
End If
Loop
Teller = Teller - 1
' Nulstellen van Null-items
For i = 1 To Teller
For j = 1 To 21
If IsNull(DividendenMatrix(i, j)) Then
DividendenMatrix(i, j) = 0
End If
Next j
Next i
' Totaliseren van contant dividend, stockdividend in aantal en stockdividend in geld.
For i = 1 To Teller
TotaalContantDividend = TotaalContantDividend + DividendenMatrix(i, 3)
TotaalStockDividendAantal = TotaalStockDividendAantal + DividendenMatrix(i, 4)
TotaalStockDividendGeld = TotaalStockDividendGeld + DividendenMatrix(i, 5)
TotaalKostenDividend = TotaalKostenDividend + DividendenMatrix(i, 9)
TotaalDividendBelasting = TotaalDividendBelasting + DividendenMatrix(i, 10)
Next i
End Sub
Private Sub Command8_Click()
' Sluiten van scherm Invoeren dividenden
frmOntvangenDividenden.Hide
End Sub
Public Sub AfdrukkenDividenden(DividendenMatrix(), Teller, TotaalContantDividend, TotaalStockDividendAantal, TotaalStockDividendGeld, TotaalKostenDividend, TotaalDividendBelasting)
Printer.Orientation = 2
Printer.FontName = "Courier New"
Printer.FontSize = 8
TotaalDividend = TotaalContantDividend + TotaalStockDividend + TotaalStockDividendGeld - TotaalKostenDividend - TotaalDividendBelasting
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Naam Fonds" & Space(3) & "Contant" & Space(2) & "Stockdivi-" & Space(2) & "Stockdivi-" & Space(4) & "Kosten" & Space(2) & "Dividendbe-" & Space(2) & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & Space(13) & "Dividend" & Space(2) & "dend geld" & Space(2) & "dend aantal" & Space(3) & "Dividend" & Space(1) & "lasting" & vbCrLf
For i = 1 To Teller
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & DividendenMatrix(i, 2) & Space(10 - Len(DividendenMatrix(i, 2))) & Format((Format((DividendenMatrix(i, 3)), "#0.00")), "@@@@@@@@@") & Space(1) & Format(Format(DividendenMatrix(i, 4), "#0.00"), "@@@@@@@@") & Space(3) & Format(Format(DividendenMatrix(i, 5), "#0"), "@@@@@@@@") & Space(6) & Format(Format(DividendenMatrix(i, 9), "#0.00"), "@@@@@@@@") & Space(1) & Format(Format(DividendenMatrix(i, 10), "#0.00"), "@@@@@@@@") & vbCrLf
Next i
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Totaal contant dividend" & Space(32 - Len("Totaal contant dividend")) & Format(Format(TotaalContantDividend, "#0.00"), "@@@@@@@@") & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Totaal stockdividend geld" & Space(32 - Len("Totaal stockdividend geld")) & Format(Format(TotaalStockDividendGeld, "#0.00"), "@@@@@@@@") & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Totaal stock dividend aantal" & Space(32 - Len("Totaal stockdividend aantal")) & Format(Format(TotaalStockDividendAantal, "#0"), "@@@@@@@@") & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Totaal kosten dividend" & Space(32 - Len("Totaal kosten dividend")) & Format(Format(TotaalKostenDividend, "#0.00"), "@@@@@@@@") & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Totaal dividendbelasting" & Space(32 - Len("Totaal dividendbelasting")) & Format(Format(TotaalDividendBelasting, "#0.00"), "@@@@@@@@") & vbCrLf
frmInvestor.ResultsT.Text = frmInvestor.ResultsT.Text & "Totaal dividend" & Space(32 - Len("Totaal dividend")) & Format(Format(TotaalDividend, "#0.00"), "@@@@@@@@") & vbCrLf
End Sub
Private Sub Command9_Click()
AnalyseDividenden
End Sub
Private Sub Form_Load()
datDividenden.DatabaseName = frmInvestor.ext(App.Path) & "DATABASE\Portef1.mdb"
datDividenden.RecordSource = "DividendenTab"
datDividenden.Visible = False
End Sub