AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage auf ein Textfeld in Access-DB
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage auf ein Textfeld in Access-DB

Ein Thema von User11 · begonnen am 16. Mär 2009 · letzter Beitrag vom 17. Mär 2009
Antwort Antwort
User11

Registriert seit: 7. Jan 2008
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

SQL-Abfrage auf ein Textfeld in Access-DB

  Alt 16. Mär 2009, 17:42
Datenbank: Access • Zugriff über: SQL
Hallo,

bishr habe ich schon allein durch Stöbern in diesem Forum vieles in meinen Programmen umsetzen können. Nun habe ich aber ein Problem, bei dem ich nicht weiter komme.

Für meinen Reha-Sportverein habe ich ein Programm geschrieben, dass unter anderem auch die Mitgliederverwaltung beinhaltet. Dazu greife ich mittels ADO auf eine Access-DB zu. Unter anderem gibt es dort ein Feld "Kostenübername-Bis". Zunächst hatte ich dieses Feld als Datum deklariert, konnte dies aber nicht aufrecht erhalten, da es auch Mitglieder gibt, bei denen die Kostenübernahme der Krankenkasse abgelaufen ist und die jetzt Selbstzahler sind. Dann steht da Space drin. Also umgewandelt in Textfeld.

Mein Problem ist, wenn ich per SQL prüfen möchte, bei welchen Mitgliedern die Kostenübernahme abgelaufen ist, prüft SQL scheinbar primär auf die beiden ersten Stellen des Datums ab. Das Jahr bzw. der Monat sind dann scheinbar egal. Ergebnis siehe Screen.

Dies funktioniert mit Date
[sqltext := ('Select mname, * From Tsv WHERE küztrm_bis <= now() ;'); //geht nur wenn Feld als Date deklariert ist]

Hiermit kommt das falsche Ergebnis:
[/Heute := datetostr(now);
sqltext := ('Select mname, * From Tsv WHERE küztrm_bis <= ''' + heute +''';');]

Hat jemand einen Lösungsvorschlag für mich?

Vielen Dank im voraus
Rainer
Miniaturansicht angehängter Grafiken
sql-ergebnis_153.jpg  
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: SQL-Abfrage auf ein Textfeld in Access-DB

  Alt 16. Mär 2009, 18:26
Zitat von User11:
Zunächst hatte ich dieses Feld als Datum deklariert....
Das würde ich auch dringend wieder so machen. Alles andere ist eher fragwürdig.
Den Feldinhalt kannst Du auch mit Null befüllen um ihn aus der Auswahl herauszuhalten.
Oder auch mit einem Datum das lange vor jedem tatsächlich möglichen ist.

Generell ist es eine schlechte Idee in den Feldtyp eine Funktionalität zu verpacken.
Grüsse
wo
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

Re: SQL-Abfrage auf ein Textfeld in Access-DB

  Alt 17. Mär 2009, 08:36
Hallo,

ändere das Feld wieder auf Datum, sonst wird das nichts (mit vertretbarem Aufwand).
Wenn es keinen Termin gibt, so lasse das Feld leer (Null). Dann solltest Du mit einer Abfrage in der Form zurecht kommen:
sqltext := ('Select mname, * From Tsv WHERE küztrm_bis <= now() and küztrm_bis is not null;');
  Mit Zitat antworten Zitat
User11

Registriert seit: 7. Jan 2008
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: SQL-Abfrage auf ein Textfeld in Access-DB

  Alt 17. Mär 2009, 13:48
Hallo,

vielen Dank für eure schnellen Antworten. Das mit dem Feld leer lassen, hatte ich zunächst auch versucht, aber nicht hinbekommen. Denn zunächst ist generell ein Datum drin, erst wenn die Kostenübernahme der Krankenkasse abgelaufen ist, soll da nichts mehr drin stehen. Das Datum habe ich zunächst immer durch Space überschrieben. Dann kam natürlich der Fehler, kein gültiges Datum. Wenn ich Space lösche, klappt.

Da bin ich erst durch euren Hinweis drauf gekommen.

Vielen Dank nochmals.

Gruß
Jürgen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz