Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Access Abfrage mit Bedingung
26.10.2021 16:47:11
Ronald
Grüßt Euch alle!
Ich möchte gerne alle Datensätze in eine Listbox laden. Nur wenn ein bestimmter Wert in einem Feld vorkommt, dann den ganzen Datensatz überspringen.
Ich habe das Gefühl, da fehlt nicht viel. Ich hab nur leider keine Idee. Vielleicht kann mir hier jemand helfen.
Mein Code sieht wie folgt aus. Die Darstellung des Codes für den DB-zugriff spare ich mir jetzt und zeige nur die Zuweisung zu den Listboxen:

Public Sub b_SQL_Abfrage_Listbox_PrivatKd()
strQuery = "SELECT * FROM tKunden ORDER BY fKdNummer ASC"
Set rs = cn.Execute(strQuery)
End Sub

Public Sub c_Handling_PrivDaten_fuer_Auswahl_holen()
Dim i As Integer
i = 1
Do While Not rs.EOF
frmAuswahl.lstAuswahlKundennummer_KV.AddItem rs.Fields("fKDNummer").Value
frmAuswahl.lstAuswahlNachname_KV.AddItem rs.Fields("fKdNachname").Value
frmAuswahl.lstAuswahlVorname_KV.AddItem rs.Fields("fKdVorname").Value
frmAuswahl.lstAuswahlOrt_KV.AddItem rs.Fields("fKdOrt").Value
rs.MoveNext
i = i + 1
Loop
End Sub
Angegenommen, es sind 50 Datensätze in der Tabelle und der Nachname "Müller" kommt 3x vor. Und ich möchte, daß dieser Name GAR NICHT vorkommt. Sollte ich da stattdessen bei der SELECT-Abfrage etwas anderes abfragen? Ist wahrscheinlich einfacher. Nur wie? Wäre froh, um jede Hilfe.
Danke im Voraus.
Gruß Ronald
PS: Wenn ich Quellcode in der Anfrage hervorheben möchte, wie mache ich das?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access Abfrage mit Bedingung
26.10.2021 17:09:21
ChrisL
Hi Ronald
ungetestet, etwa so...

strQuery = "SELECT * FROM tKunden WHERE fKdNachname  'Müller' ORDER BY fKdNummer ASC"
https://www.w3schools.com/sql/sql_where.asp
cu
Chris
AW: Access Abfrage mit Bedingung
26.10.2021 17:12:02
Ronald
Danke Chris, das probier ich aus.
Formeln hab ich instinktiv in pre-Klammern gesetzt. komischerweise hat es mir in der Vorschau den Code nicht separat angezeigt. Jetzt, wo Du geantwortet hast, jedoch schon. Seltsam. Aber gut zu wissen, daß ichs richtig gemacht habe.
Gruß Ronald
AW: Access Abfrage mit Bedingung
26.10.2021 17:14:13
ChrisL
ja die Vorschau entspricht nicht ganz der endgültigen Ansicht...
AW: Access Abfrage mit Bedingung
26.10.2021 17:38:01
Ronald
Kann ich eigentlich bei dieser Abfrage

strQuery = "SELECT * FROM tKunden WHERE fKdStatus  'Gelöscht' ORDER BY fKdNummer ASC"
Gleich noch einen Zähler mit einfummeln, der mir die Anzahl Datensätze insgesamt zählt (also inklusive derer, die er überspringt)
beziehungsweise beide? Die Übersprungenen und die Nichtübersprungenen? Wie auch immer :-)
Danke im Voraus und Gruß
Ronald
Anzeige
AW: Access Abfrage mit Bedingung
26.10.2021 18:48:40
Yal
Hallo Ronald,
Du kannst nur einen Zaehler herausgeben, wenn diese Teil der Datenbestand.
Alternativ könntest Du die Abfrage über Power Query anstossen, dort eine Index-Spalte einfügen (Zähler) und anschliessend die nicht gewünschte Datensätze rausfiltern. Die PW-Abfrage kannst Du per VBA ansprechen.
Dritte Möglichkeit wäre eine Function in Access einzubauen, die eine SQL-Abfrage als Parameter annimmt und eine Zählung herausgibt. Etwas umständlich.
VG
Yal
AW: Access Abfrage mit SELECT COUNT
27.10.2021 09:18:13
Ronald
Könnte man nicht auch auf diese Art zählen, wieviele Zeilen die DB hat?

strQuery1 = "SELECT COUNT (fKdNummer) FROM tKunden"
Set rs = cn.Execute(strQuery1)
MsgBox strQuery1
In diesem Falle sollte doch dann strQuery1 eine Zahl enthalten. Tut sie aber nicht.
Da ist einfach der zugewiesene String drin. Irgendwie scheine ich noch einen Denkfehler zu haben.
Ich hab das von hier:

https://www.datenbanken-verstehen.de/sql-funktionen/sql-count-funktion/

Wahrscheinlich liegts daran, daß es in VBA die Syntax noch etwas anders ist. Wäre toll,
wenn jemand eine Idee hätte.
Danke im Voraus.
Gruß Ronald
Anzeige
AW: Access Abfrage mit SELECT COUNT
27.10.2021 09:24:28
peterk
Hallo
Das Abfrageergebnis steht in "rs" ! (strQuery1 ist ja Dein SQL Kommando)
Peter
AW: Access Abfrage mit SELECT COUNT
27.10.2021 09:27:34
Ronald
Dann hätte ich statt

Msgbox strQuery1
einfach

Msgbox CStr(rs)
Aber auch da kommt "Typen unverträglch".
AW: Access Abfrage mit SELECT COUNT
27.10.2021 09:56:53
ChrisL
Hi
So...

Set rs = cn.Execute("SELECT COUNT(fKdNummer) AS Anzahl FROM tKunden")
MsgBox rs.Fields("Anzahl").Value
Da die Kriterien unterschiedlich sind (einmal SELECT mit Einschränkung 'gelöscht' und einmal ohne Einschränkung für Anzahl) braucht es zwei separate Abfragen. Wenn noch andere Auswertungen folgen könnte es sinnvoll sein die Daten ungefiltert zu selektieren und innerhalb Excel auszuwerten so dass du nicht mehrfach selektieren musst.
cu
Chris
Anzeige
AW: Access Abfrage mit SELECT COUNT
27.10.2021 10:03:54
Ronald
Funktioniert prächtig.
Vielen herzlichen Dank!
Wünsche noch einen schönen Tag.
Gruß Ronald

171 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige