ADO Sum

Moderator: ModerationP

ADO Sum

Beitragvon Karin219 » 14. Okt 2019, 20:50

Hallo zusammen,
ich bin gerade dabei mir das ADO etwas beizubringen.
Jetzt habe ich eine Tabelle mit Ausgaben

Carina 15
Sarah 30
Ina 70
Carina 90
...

Jetzt möchte ich in ein MsgBox den Namen eingeben und bei Carina soll nun

Carina 105 € rauskommen.


strName = InputBox("Ausgabe von wem Prüfen?")
strSQL = "Select sum(Betrag), Name FROM Belegung Where Ausgaben='" & strName & "'"
rs.Open strSQL, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic

Jetzt erhalte ich eine Fehlermeldung, da ich den Betrag schon summiert habe und dies beim Namen natürlich nicht geht. Aber ich weiß einfach nicht wie die Zeile richtig heißen müsste.
puhh...ich habe schon so vieles ausprobiert, jetzt weiß ich nicht mehr weiter.
VIele Grüeß
Karin219
 

Re: ADO Sum

Beitragvon KlausMz » 14. Okt 2019, 21:57

Hallo,
steht im Feld Ausgaben der Name, doch wohl eher nicht, oder.
Außerdem fehlt bei der Abfrage die Gruppierung.
Code: Alles auswählen
strSQL = "SELECT Sum(Betrag), [Name] FROM Belegung WHERE [Name]= '" & strName & "' GROUP BY [Name]"

Ob die andere Zeile stimmt kann ich Dir nicht sagen.

PS:
Auch für Versuchscodes/Versuchstabellen sollte man auf keinen Fall ein Feld "Name" nennen. Name ist (auch in Englisch) eine Eigenschaft und ist daher ein reserviertes Wort und somit für eigene Namensgebungen tabu.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 39263
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: ADO Sum

Beitragvon Bitsqueezer » 15. Okt 2019, 08:36

Hallo,

naja, mit speziell ADO hat das nichts zu tun, hier geht es um Schwierigkeiten bei SQL.
GROUP BY ist natürlich notwendig, wenn Du mehr als die Aggregatfunktion einfügst.

Aber wenn wir schon bei ADO sind: adLockOptimistic macht bei reinen Abfragen, die nur Informationen liefern sollen, keinen Sinn. Wenn Du schon "adOpenForwardOnly" verwendest, dann solltest Du auch "adReadOnly" verwenden, damit hast Du den "Firehose"-Cursor, die schnellste Methode, um per ADO Daten zu lesen. Einen optimistischen Lock brauchst Du nur, wenn Du Daten im Recordset verändern willst, dann allerdings eher selten mit adOpenForwardOnly.

Hier eine Tipseite dazu: http://www.4guysfromrolla.com/webtech/112998-1.shtml

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7219
Registriert: 21. Jun 2007, 12:17

Re: ADO Sum

Beitragvon Karin219 » 15. Okt 2019, 09:50

Hallo,
Danke, es lag am group by.
Ich dachte, dass ich erstmal klein Anfange und dann den Rest zunehme, natürlich doof wenn das eine zum anderen benötigt wird.

und danke, jetzt habe ich das mit dem Readonly auch verstanden, ich habe da ehrlich gesagt etwas von anderen Codes abgeguckt.
Bis denne
Karin219
 

Re: ADO Sum

Beitragvon KlausMz » 15. Okt 2019, 09:54

Hallo,
Danke, es lag am group by.
Aber nicht nur, Du hattest auch das falsche Feld zum Vergleich.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 39263
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Beaker s.a. und 10 Gäste