collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 67
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14070
  • stats Beiträge insgesamt: 67529
  • stats Themen insgesamt: 9099
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Datum in Zahl umwandeln  (Gelesen 1440 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Datum in Zahl umwandeln
« am: November 12, 2017, 10:46:36 »
Ich habe ein Listenefeld, dessen Einträge Daten zeigen, nach denen auch die Liste sortiert wird. Wie kann ich machen, dass das Feld die am weitestens in der Zukunft liegenden Daten oben zeigt?

Beim Sortieren nach dem Datum sortiert er jetzt gerade zuerst die Tage, die natürlich jeden Monat mehrfach vorkommen.

Ich dachte daran, in der Abfrage ein weiteres Feld berechnen zu lassen, das die Daten als Zahl abbildet und dann absteigend sortieren zu lassen, kenne aber die Funktion für die Abfrage nicht.

Carl

Nachtrag: Zum beiuspiel geht nicht VisitenTerminDatumDatwert: DatWert([VisitenTerminDatum])
« Letzte Änderung: November 12, 2017, 10:51:36 von Carl »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7424
Re: Datum in Zahl umwandeln
« Antwort #1 am: November 12, 2017, 10:59:05 »
Hallo,
Das Datum ist bereits eine Zahl (Double) und muss nicht erst gewandelt werden. Welcher Datentyp ist denn das Feld "VisitenTerminDatum" in der Tabelle ?
Das sollte Datum/Zeit sein, dann wird auch richtig sortiert.
« Letzte Änderung: November 12, 2017, 11:13:17 von MzKlMu »
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: Datum in Zahl umwandeln
« Antwort #2 am: November 12, 2017, 15:19:29 »
Ich habe es mit cdbl gemacht.

Und sag mal, noch eine andere Frage: Gibt es in einer Abfrage irgend eine Möglichkeit, in einem Feld statt der ID den darüber liegenden String weiter zu geben, ohne die zugehörige Hilfstabelle einzubinden?

Ich denke, die Informationen über ID und string liegen ja schon vor und werden aus der "Haupttabelle" bezogen. Dadrcuh könnte man sich in der Abfrage die "umkodieren-felder" sparen.

Geht das mit zstring?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7424
Re: Datum in Zahl umwandeln
« Antwort #3 am: November 12, 2017, 15:40:38 »
Hallo,
Ich habe es mit cdbl gemacht.das ist überflüssig und habe ich auch nicht geschrieben. Das Datum ist bereits eine Zahl das Typs Double, das zusätzliche Wandeln ist überflüssig.
Und meine Frage nach dem Datentyp hast Du auch nicht beantwortet.
Das hat mit ZString nichts zu tun, ZString ist eine Umwandlungsfunktion um aus einer Zahl einen Text zu machen. Aus 1234 als Zahl wird dann 1234 als Text (String). Um einen zu ID passenden Klartext aus einer Tabelle zu holen würde man DLookup verwenden. Aber, die Abfrage mit den entsprechenden Tabellen ist der bessere und übliche Weg. Und DLookup ist eine Bremse.

Man sollte in einer Datenbank nicht überlegen wie man eine Abfrage sparen kann. Der Zugriff auf Daten erfolgt im Regelfall immer über Abfragen, nicht über die Tabellen direkt. Die Abfrage kann je nach Datenumfang und Anzahl der Felder auch schneller sein als der Zugriff auf die Tabelle direkt. Sobald auch nur mit einer Tabelle Sortierungen ins Spiel kommen, ist eine Abfrage unverzichtbar.
Gruß
Klaus
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: Datum in Zahl umwandeln
« Antwort #4 am: November 12, 2017, 15:58:38 »
Der Typ war text mit noch weiteren Zeichen dahinter. Ich hatte es aus Platzgründen nicht mit zwei Spalten sondern mit einem berechneten Textfeld gemacht, mit dem Datum als Text. Jetzt habe ich dieses Textfeld und das cdbl zum richtigen sortieren, das reicht mir.

---

Das Problem kommt ja daher, dass ich dlookup nicht nehmen will. Und es soll aus drei Tabellen abgefragt werden, für die jeweils Abfragen vorliegen, aber es wird mir zu komplex, wenn immer im Hintergrund die ID's sind. Mir wäre es lieber, wenn man einfach eine Funktion hätte, die ein Feld berechnet indem es den Klartext holt und hartkodiert, der der Abfrage ja ohnehin schon bekannt ist ...

Carl
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7424
Re: Datum in Zahl umwandeln
« Antwort #5 am: November 12, 2017, 16:05:21 »
Hallo,
Zitat
man einfach eine Funktion hätte, die ein Feld berechnet indem es den Klartext holt und hartkodiert,
das wäre DLookup.
Zitat
der der Abfrage ja ohnehin schon bekannt ist ...
was ist der Abfrage bekannt, der Klartext ?

Irgenwie verstehe ich garde Dein Problem nicht so recht.
Gruß
Klaus
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: Datum in Zahl umwandeln
« Antwort #6 am: November 12, 2017, 16:49:51 »
Irgenwie verstehe ich garde Dein Problem nicht so recht.

Weil ich es nicht vollständig beschrieben habe.

Also: Ich habe ein HF mit 5 UFOS, die jeweils Wochentage anzeigen und Daten zusammen sammeln aus Tabellen für Mitarbeiter, Patientengruppen und Terminen + Hilfstabellen usw..

Damit der Mitarbeiter mit den Terminen nicht durcheinander kommt, soll manchmal angezeigt werden, wenn ein Pat z.B. 10:00 Uhr bei Ergotherapie ist, das mache ich mit dlookup im Hauptformular, damit dort keine ID's stehen. Jetzt wollte ich dlookup ersetzen und der Hinweis soll gleich aus der Abfrage kommen. Hier muss ich aber auch neue Felder definieren und das alles.

Was bekannt ist? Nun: Einer jeden Abfrage muss für jedes Feld die ID und der Klartext bekannt sein, sonst könnte sie ja nicht den Klartext anzeigen und dessen ID speichern. Logisch HAT jede Abfrage schon jene Informationen (und zwar aus der zugrundeliegenden Tabelle), die sie trotzdem vom Entwickler über zu definierende Felder erneut als Arbeitsleistung einfordert. Das finde ich unpraktisch.

Und da dachte ich einfach, als Neuling, dass es doch vielleicht eine Funktion geben könnte, die einfach sagt: "bei diesem Feld bitte nicht mit ID, sondern mit Klartext weiter operieren". Damit man sich Klickarbeit erspart.

Carl
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7424
Re: Datum in Zahl umwandeln
« Antwort #7 am: November 12, 2017, 17:02:22 »
Hallo,
es ist mir immer noch völlig unklar.
Zitat
Logisch HAT jede Abfrage schon jene Informationen (und zwar aus der zugrundeliegenden Tabelle),
wenn die Abfrage die Infos hat, zeige sie dann doch einfach an.
Gruß
Klaus
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: Datum in Zahl umwandeln
« Antwort #8 am: November 12, 2017, 17:12:15 »
"In einem Textfeld in einem frm, das auf einer Abfrage basiert, wird nicht der Klartext angezeigt sondern die ID. Daher muss der Klartext per dlookup für dieses Textfeld geholt werden."

Ist diese Aussage richtig?

"In einer Abfrage wird in einem Feld Klartext angezeigt, aber die ID gespeichert."

Ist diese Aussage richtig?

Carl
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7424
Re: Datum in Zahl umwandeln
« Antwort #9 am: November 12, 2017, 17:22:38 »
Hallo,
die 1. Aussage ist halb richtig.
Es geht mit DLookup, aber bei korrektem Datenmodell nimmt man in die Abfrage für das Formular die Tabelle mit dem Klartext mit dazu und hat auch dieses Feld zur Anzeige.

Die 2. Aussage ist so falsch.
Eine normale Abfrage speichert ja nichts. In einer Abfrage wird der Klartext nur angezeigt, wenn die Abfrage auch die Tabelle mit dem Klartext beinhaltet, also muss die Abfrage mindestens 2 Tabellen haben. Siehe auch Antwort zu Aussage 1.

Ich habe mir gerade mal Deine älteren Beiträge angesehen. Wie dort schon gesagt ist das Datenmodell eine Katastrophe. In einem korrekten Datenmodell wird man so gut wie nie DLookup benötigen.
Und Deine DLookup Origien sind für eine Datenbank ein noGo.
Wenn Du damlas begonnen hättest den Aufbau zu normalisieren, würde das Konstrukt schon längst auf gesunden Füßen stehen.

Da mir die Zusammenhänge immer noch völlig unklar sind, kann ich da nicht weiter helfen.
Gruß
Klaus