online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon morpheus__85 vom 03.09.2019, 13:58 Options

datum in access

hallo leute.

hab ein problem.
hab eine tabelle mit sehr viel datensätzen.
jeder datensatz kommt 4 mal vor.
zu jedem Datensatz existiert ein Datum.
Im Moment die Daten 29.08.2007, 30.08.2007, 31.08.2007 und 01.09.2007.
Jetzt möchte ich, dass Access mir von jedem dieser 4 Datensätze jeweils nur den jüngsten also den 01.09.2007 anzeigt. Kann mic jemand sagen wie ich das mache?

gruß
morpheus


Antwort schreiben

Antwort 1 von MixMax vom 03.09.2019, 14:07 Options

Du solltest eine Abfrage erstellen. Der abfrageassistent kann eventuell helfen.
du must nach den anderen Daten gruppieren und bei dem Datum das nicht mitgruppiert wird Min(Datumspaltenname) ausgewählt.

Antwort 2 von morpheus__85 vom 03.09.2019, 14:20 Options

hallo mixmax

so hab ich es leider auch schon versucht.
leider hat sich der gewünschte erfolg noch nicht eingestellt.

gruß
morpheus

Antwort 3 von morpheus__85 vom 03.09.2019, 14:33 Options

das problem is halt das man nicht nur eine datensatrz hat sondern mehrer also z.b.

datensatz1 29.08.2007
datensatz1 30.08.2007
datensatz1 31.08.2007
datensatz1 01.09.2007
datensatz2 29.08.2007
datensatz2 30.08.2007
datensatz2 31.08.2007
datensatz2 01.09.2007
datensatz3 29.08.2007
datensatz3 30.08.2007
datensatz3 31.08.2007
datensatz3 01.09.2007

und dann solls so aussehen


datensatz1 01.09.2007
datensatz2 01.09.2007
datensatz3 01.09.2007

ich könnte zwar beim datum als kriterium =01.09.2007 schreiben aber das ganze sollte halt so variable sein, dass bei neuen Daten wieder das jüngste Datum gewählt wird.

gruß
morpheus

Antwort 4 von ChatAlligator vom 03.09.2019, 15:12 Options

SELECT * FROM Tabellenname WHERE Tabellenname.Datumspalte= (SELECT MAX(Tabellenname.Datumspalte)
FROM Tabellenname);

Sollte ein Datensatz aber nicht mehr aktualisiert werden, so wird er auch nicht mehr angezeigt !
Möchte man ihn trotzdem mitanzeigen (älteres Datum), dann müsste man wissen, woran man erkennen kann, welche Datensätze jeweils zusammen gehören

Antwort 5 von morpheus__85 vom 03.09.2019, 15:46 Options

hallo ChatAlligator

danke für deinen tip,
nur hab ich ein problem die SQL anweisung schmeißt den 31 als größtes Datum raus...
an was könnte das denn liegen?`

gruß
morpheus

Antwort 6 von ChatAlligator vom 03.09.2019, 15:51 Options

In deinem Bespiel wird mir 01.09.2007 angegeben - hast Du dich vielleicht beim 1.9. oder am 31.08. im Jahr vertan ?

Antwort 7 von morpheus__85 vom 03.09.2019, 15:59 Options

ich hab meinen fehler gefunden.
ich hab dieses daten ja direkt von Excel reinimportiert und da hat Access dann als Datentyp Text statt Datum/Zeit angegeben da ging es nicht. Mit Datum als Typ ging es.
Gibt es eine Möglichkeit, dass ich das Feld beim Import bzw. bei einer Tabellenerstellungsabfrage als Datum umgewandelt wird?

gruß
morpheus

Antwort 8 von ChatAlligator vom 03.09.2019, 16:06 Options

Zunächst solltest Du das Accessfeld als Datum deklarieren
EXCEL sieht es von sich als Datum an, wenn du nicht ausdrücklich sagst, es wäre ein Textfeld (vorausgesetzt es wird wie ein typisches Datum geschrieben)

Antwort 9 von morpheus__85 vom 03.09.2019, 16:14 Options

Das Accessfeld hab ich jetzt soweit deklariert.
Das Problem ist aber eben, dass beim nächsten Import dann, die Tabelle gelöscht, neu erstellt und wieder neu mit Daten befüllt wird.
Beim automatischen Import legt allerdings Access grundsätzlich als Datentyp Text fest.
Mein Datumformat in Excel ist 29.08.2007 00:00:00.

gruß
morpheus

Antwort 10 von MixMax vom 03.09.2019, 16:20 Options

wenn du Access 2007 verwendest, kannst du einen import speichern und in diesem dafür sorgen das er immer so importiert, dass es eine Datumszelle ist.


alternativ kannst du in der Exceltabelle die Daten mit Access verknüpfen oder umgekehrt... so entfällt das importieren ganz..

oder du löschst den inhalt der tabelle und importierst immer in die bestehende tabelle. (das ist definitiv einfacher und behält dein altes system beinahe bei)

Antwort 11 von ChatAlligator vom 03.09.2019, 16:31 Options

Warum importierst du denn die Tabelle und nicht nur die Werte in die vorhandene Datenbanktabelle (wie es üblich wäre) ?
Im übrigen kann man mit SQL mehr als nur Abfragen erstellen - es lassen sich darüber auch Tabellen erstellen und Daten eintragen. Auch EXCEL kann per SQL direkten Datenbankzugriff nutzen - egal ob lesen oder schreiben

Antwort 12 von morpheus__85 vom 04.09.2019, 08:59 Options

Guten morgen,

hätte da mal eine Frage....
Ich wollte jetzt versuchen eine Tabelle über CREATE TABLE zu erstellen und anschließend möchte ich dann meine Werte hineinfügen, sodass mein Datum richtig formatiert ist.

CREATE TABLE Daten
(Datensatz Integer,
Datum DATE);

Dann bekomme ich allerdings die Meldung,
"Abfrage benötigt zumindest ein Zielfeld"

Kann mir jemand sagen wo hier der Fehler liegt?

gruß
morpheus

Antwort 13 von FireBall70 vom 04.09.2019, 09:13 Options

Hallo,
habe gerade die Create Table Abfrage in Access und in Oracle probiert. Keine Probleme. Es müsste schon in irgendeiner Abfrage kein Zielfeld vorhanden sein, beim input oder update. Um eine eifache Tabelle zu erstell wird eigentlich kein Zielfeld benötigt.

Antwort 14 von morpheus__85 vom 04.09.2019, 09:33 Options

hallo fireball

das verstehe ich nicht,
wenn ich eine abfrage erstellen will und dann bei SQL die Anweisung eingebe erscheint immer die Fehlermeldung und ich kann sie mir leider nicht erklären

gruß
morpheus

Antwort 15 von FireBall70 vom 04.09.2019, 10:09 Options

Um meine vorgehensweise zu beschreiben:
Ich wähle eine leere Access-DB, gehe auf Abfragen, dann auf Neu, wähle die Entwurfsansicht und schließe das Fenster "Tabelle anzeigen". Mit rechtsklick in das Abfrage-Fenster gebe ich in der SQL-Ansicht das Create Table Statement ein. Bei mir funktionierts. Vielleicht mal eine leere DB erstellen und diesen Schritt probieren, ob das geht.

Antwort 16 von morpheus__85 vom 04.09.2019, 10:19 Options

`genau so hab ich es auch mal probiert.
funktioniert aber bislang leider nicht aus welchen gründen auch immer. hab die tabelle jetzt per hand erstellt befülle sie dann mit INSERT INTO.... funktioniert auch soweit.

danke für deine hilfe
gruß
morpheus

Antwort 17 von RalfH vom 04.09.2019, 11:36 Options

Hallo,
Man könnte auch an die Ursache gehen, und in Excel ein Makro erstellen, welches die Formatierung von Text auf Datum setzt.

Angenommen das Datum steht in Spalte A:

Sub Text_to_Date()

    Columns("A:A").Select
    Selection.NumberFormat = "m/d/yyyy"
    ChDir "C:\ExcelImport"
    ActiveWorkbook.SaveAs Filename:="C:\ExcelImport\Mappe1.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
End Sub


Dann sollte das mit dem Importieren keine Probleme mehr bereiten. ChDir und Filename musst Du allerdings anpassen.
Gruß Ralf

Antwort 18 von morpheus__85 vom 05.09.2019, 11:56 Options

Hallo Ralf,

danke für deinen Tip, hab es aber jetzt doch mit dem CREATE TABLE hinbekommen.
Noch eine Frage zum Datum.
Ich hab ein kurzem Datum als Standard also z.b. 10.10.2005.
Jetzt würde ich gern anhand des Datums einige Spalten noch berechnen lassen.
Die wären dann, Jahr, KW, Monat
In Excel weis ich die Formeln.
Jahr: =Jahr(H2) z.b.
KW:=KÜRZEN((H2-WOCHENTAG(H2;2)-DATUM(JAHR(H2+4-WOCHENTAG(H2;2));1;-10))/7)
Monat:=MONAT(H2)

Aber wie bekomm ich das in Access hin? wie müsste es da lauten? eine andere möglichkeit wäre, vorm import der Daten über ein Access marko Excel zu öffnen und dann die Fomeln hinterlegen zu lassen und dann die DAten mit den durch die Formeln berechneten Spalten zu importieren.

Wäre halt in Access direkt einfacher.
Wie muss ich das anstellen das ich die Spalten in Access berechnen lassen kann?

gruß
morpheus

Antwort 19 von RalfH vom 05.09.2019, 13:31 Options

Ungefäht so:

SELECT Deine Tabelle.datum, Weekday([datum]) AS Wochentag, Month([datum]) AS Monat, Year([datum]) AS Jahr
FROM Tabelle1;


Gruß Ralf

Antwort 20 von morpheus__85 vom 05.09.2019, 13:46 Options

hallo Ralf,
vielen Danke für deine HIlfe.
Gibts es eine Möglichkeit, dass ich den Wochenentag nicht als 2,3 oder 4 oder so angezeigt bekommen sondern als Mo, Di oder Mi?

gruß
morpheus

Ähnliche Themen

Automatische Datumeingabe in Access
schluri  17.01.2007 - 119 Hits - 1 Antwort

PHP - Datum formatieren
stol0014  16.02.2007 - 178 Hits - 2 Antworten

Datum abstrahieren
NeshNesh  23.07.2007 - 81 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026