| |

Fortgeschrittene ProgrammierungVB-Durchschnittsberechnung mit Parametern??? | |  | Autor: Martin | Datum: 06.10.02 13:22 |
| Hallo
Ich habe ein Modul zur Durchschnittsberechnung, welches die Daten aus einer Abfrage(‚qryArbeitNote’ holt.
Ich möchte nun, dass ich die Durchschnittsberechnung auch auf einen bestimmten Zeitraum(der übers Formular bestimmt wird) begrenzen kann. Deshalb habe ich in die Abfrage die entsprechenden Kriterien(Datum) eingefügt. Die Abfrage an sich funktioniert wunderbar, aber wenn ich sie als Datenherkunft fürs Modul eingebe, bekomme ich eine Fehlermeldung: „Laufzeitfehler- für mindestens einen erforderlichen Parameter wurde kein Wert(im Modul) angegeben!“
Würde mich freuen, wenn Ihr Euch das mal ansehen könntet!!!
Hier nun die nötigen Informationen:
Alte Abfrage(ohne Kriterien;hat wunderbar funktioniert):
SELECT Arbeiten.Fach, Notenblatt.Schüler_ID, Notenblatt.Note, Arbeiten.Art, Arbeiten.Datum
FROM Arbeiten INNER JOIN Notenblatt ON Arbeiten.Arbeits_ID = Notenblatt.Arbeits_ID;
Neue Abfrage(mit Kriterien):
SELECT Arbeiten.Fach, Notenblatt.Schüler_ID, Notenblatt.Note, Arbeiten.Art, Arbeiten.Datum
FROM Arbeiten INNER JOIN Notenblatt ON Arbeiten.Arbeits_ID = Notenblatt.Arbeits_ID;
WHERE (((Arbeiten.Datum) Between #9/1/2002# And #2/15/2003#) AND (([Formulare]![FachnotenblattDialog]![Optionsgruppe1])=1)) OR (((Arbeiten.Datum) Between #2/16/2003# And #8/31/2003#) AND (([Formulare]![FachnotenblattDialog]![Optionsgruppe1])=2)) OR ((([Formulare]![FachnotenblattDialog]![Optionsgruppe1])=3)) OR (((Arbeiten.Datum) Between [Formulare]![FachnotenblattDialog]![DatumVon] And [Formulare]![FachnotenblattDialog]![DatumBis]) AND (([Formulare]![FachnotenblattDialog]![Optionsgruppe1])=4));
Was muss ich nun an folgendem Modul verändern, damit das Ganze wieder funktioniert???
Modul:
Public Function Notendurchschnitt(SchuelerID As Long, Fach As String) As Double
Dim RS As New ADODB.Recordset, Res As Double, Cnt As Long, Tmp As String
RS.ActiveConnection = CurrentProject.Connection
RS.Open "SELECT * FROM qryArbeitNote WHERE Schüler_ID=" & SchuelerID & _
" AND Fach='" & Fach & "'", , adOpenForwardOnly
Res = 0: Cnt = 0
Do While Not RS.EOF
If Not IsNull(RS!Note) Then
Tmp = Left(RS!Art, 2)
If Tmp = "Sa" Or Tmp = "Ku" Then
Res = Res + (2 * RS!Note)
Cnt = Cnt + 2
Else
Res = Res + RS!Note
Cnt = Cnt + 1
End If
End If
RS.MoveNext
Loop
If Cnt > 0 Then
Notendurchschnitt = CDbl(Format(Res / Cnt, "0.00"))
Else
Notendurchschnitt = 0
End If
End Function
Vielen Dank an alle die mir weiterhelfen können!!!
Gruss,
Martin |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevDTA 3.0 Pro 
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|