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.
hallo mixmax
so hab ich es leider auch schon versucht.
leider hat sich der gewünschte erfolg noch nicht eingestellt.
gruß
morpheus
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
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
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
In deinem Bespiel wird mir 01.09.2007 angegeben - hast Du dich vielleicht beim 1.9. oder am 31.08. im Jahr vertan ?
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
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)
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)
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
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.
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.
`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
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
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