vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
DAO-Datenbank - Verschiedene Werte eines Datenfeldes zählen 
Autor: V A T
Datum: 14.01.23 13:27

Hallo,

nachdem ich im letzten Thema diese Query-Funktion (kannte ich bisher noch nicht) kennen gelernt habe, stellt sich mir die Frage, ob man damit auch folgendes Problem einfach lösen könnte:

Ich habe beispielsweise eine Datenbank mit 3 Feldern und 1000 Datensätzen.
Im zweiten Feld (Feld2) steht pro Datensatz ein Buchstabe (A-Z), im dritten Feld (Feld3) ein Wert.
Nun möchte ich wissen, wie viele [u]unterschiedliche(!) Buchstaben es in Feld2 gibt, allerdings nur berücksichtigt, wenn in Feld 3 ein Wert größer 0 steht.

Mit meinem bisherigen Kenntnissen kann ich nur eine Abfrage schreiben, die mir alle Datensätze, bei denen in Feld3 ein Wert größer 0 steht, in ein Array einliest. Und im Array anschließend mühsam per Schleifen die Buchstabeninhalte in Feld2 auswerten.

Gibt es da eine einfachere Lösung, um die Berechnung zu vollziehen und als Ergebniswert die Zahl zu haben, wie viele [u]unterschiedliche(!) Buchstaben es in Feld2 gibt, wenn in Feld 3 ein Wert größer 0 steht?

Gruß

V A T

Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!!

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DAO-Datenbank - Verschiedene Werte eines Datenfeldes zählen 
Autor: emaNoN
Datum: 14.01.23 16:58

Das Einfachste dürfte sein:

Du erzeugst dir erstmal einen neuen View (Abfrage):
Ich nenn' das 'mal „Abfrage1“.

SELECT [Feld2]
FROM [Tabelle1]
GROUP BY [Feld3], [Feld2]
HAVING [Feld3]>0

Dann brauchst du nur noch

SELECT COUNT([Feld2])
FROM [Abfrage1]

P.S.:
Besorg dir mal ein vernünftiges DB-Tool wie z. B. https://fishcodelib.com/database.htm, ist kostenlos und erspart dir das umständliche Programmieren unter VB6 wenn du nur SQL-Code testen möchtest.

Beitrag wurde zuletzt am 14.01.23 um 17:10:11 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DAO-Datenbank - Verschiedene Werte eines Datenfeldes zählen 
Autor: emaNoN
Datum: 15.01.23 09:31

Mir ist da ein kleiner Fehler unterlaufen.

Du erstellst zwei Views:

1. Abfrage1
SELECT Feld2
FROM Tabelle1
WHERE Feld3 > 0;

2. Abfrage2
SELECT Feld2
FROM Abfrage1
GROUP BY Feld2;

und dann:

SELECT COUNT(Feld2)
AS SUMME
FROM Abfrage2
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DAO-Datenbank - Verschiedene Werte eines Datenfeldes zählen 
Autor: V A T
Datum: 15.01.23 16:15

Hallo,

erst nochmal wirklich danke, dass du mich unterstützt!!!

Erstmal zum Hintergrund: Ich benötige die SQL-Abfragen ausschließlich für VB6-Programme, in denen ich Daten verarbeite, die in Access-Datenbanken hinterlegt sind. Will heißen, ich will VB6 gar nicht umgehen, sondern VB6 ist das Ziel...

Kannst du mir deshalb sagen, wie ich die beiden Abfragen von dir in meinen Code bringe?! Bisher habe ich ja nur eine Query-Abfrage umgesetzt. Die hatte aber nur eine Abfrage, nicht zwei...

'QUERY-Abfrage und Aktion definieren
        SQL = "UPDATE TAB1 SET Feld1 = 0"
        Set QUERY = DB.CreateQueryDef("", SQL)
        QUERY.Execute
        QUERY.Close
        Set QUERY = Nothing
Gruß

V A T

Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!!

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DAO-Datenbank - Verschiedene Werte eines Datenfeldes zählen 
Autor: emaNoN
Datum: 16.01.23 01:05

Daher mein Tipp mit dem DB-Tool. Damit (oder in Access) erstellst du die beiden Views (Abfragen) in deiner DB. In deinem VB6-Code führst du dann nur noch

SELECT COUNT(Feld2)
FROM Abfrage2

aus.

So sieht deine DB dann aus:


In deinem VB-Code machst du den SELECT COUNT... und bekommst genau einen Datensatz zurück.

Beitrag wurde zuletzt am 16.01.23 um 01:40:20 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 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