Ani84 Geschrieben 26. Januar 2009 Teilen Geschrieben 26. Januar 2009 Ich habe aus excel eine tabelle in access importiert. ein feld davon heißt timestamp. die daten darin sehen wie folgt aus: 20080515152738. ich hätte dieses datum aber jetzt gerne als 15.05.2008 15:27:38 damit ich später nach monaten oder jahren sortieren kann. kenn mich kaum mit access aus, bitte um hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 26. Januar 2009 Teilen Geschrieben 26. Januar 2009 schreib dir eine funtion, die mittels substrings das datum korrekt umformatiert und den datumsbegrenzer # links und rechts davon setzt. also z.b. so - ungetestet: function CSqlDate(datum as string) CSqlDate = mid(datum, 1, 4) ' liefert nur das jahr end function die entsprechenden positionen in deiner datumswurst musst du natürlich anpassen. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ani84 Geschrieben 26. Januar 2009 Autor Teilen Geschrieben 26. Januar 2009 ohje anscheinend hab ich so wenig ahnung das ich nichtmal verstehe was du mir versucht hast zu erklären :-( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 26. Januar 2009 Teilen Geschrieben 26. Januar 2009 du willst aus "20080515152738" ein "15.05.2008 15:27:38" machen - was ja prinzipiell dasselbe ist, nur in einer anderen darstellung. damit du diese datumsangabe datenbankkonform verarbeiten willst, muss du es umformatieren. das machst du, indem du die einzelnen stellen dieser zahlenkette in die richtige reihenfolge bringt. und das machst du eben mit substrings: Mid(deinString as String, Start as Long, [Lenght]) die funktion Mid liefert dir von deinString, genau Lenght zeichen lang, und das ab position Start. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 26. Januar 2009 Teilen Geschrieben 26. Januar 2009 nachtrag: die längenangabe heisst im englischen natürlich nicht lenght, sondern length - was aber hier ohnehin nicht sonderlich relevant ist. das kommt davon, wenn man ungesehen irgendwelche quellen heranzieht s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ani84 Geschrieben 27. Januar 2009 Autor Teilen Geschrieben 27. Januar 2009 Hmm, also ich hab das jetzt versucht im visual basic zu machen,und dann sieht das so aus: Function timestamp(datum As String) timestamp = Mid(timestamp, 1, 8) so hätte ich nur das datum ohne uhrzeit und könnte ja so nach monaten sortieren!!! End Function aber irgendwie passiert in der datenbank so gar nix!! sorry für die blöden fragen aber kenne mich damit nicht gut aus!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
batzenlurch Geschrieben 27. Januar 2009 Teilen Geschrieben 27. Januar 2009 Hi Ani, Ich würde vorschlagen das Datum einfach komplett zu zerlegen. d.h. =links(FELD;4) AS JAHR =rechts(links(FELD;6);2) AS MONAT usw. Hoffe dieser Workaround hilft Dir. Gruß, Batze Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 27. Januar 2009 Teilen Geschrieben 27. Januar 2009 =rechts(links(FELD;6);2) AS MONAT Das kann man auch so schreiben: =teil(FELD;6;2) AS Monat Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ani84 Geschrieben 28. Januar 2009 Autor Teilen Geschrieben 28. Januar 2009 Was ich nicht ganz verstehe, wenn ich etwas in VBA eingebe, wie gebe ich denn ein, aus welchen spalten die ganzen daten genommen werden sollen und wo werden die dann so wie ich es gerne hätte hingeschrieben??? so sieht die tabelle in access aus, nur mit mehr spalten, aber relevant ist ja eigentlich nur timestamp. ich weiß jetzt nicht wie ich das im vba eingeben muss mit dem mid und wo dann mein richtiges datum erscheint?? muss ich eine extra spalte anlegen oder erscheint das geänderte datum dann in dem feld timestamp?? id timestamp 10001 20080623191807 hoffe um hilfe... vielen dank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
batzenlurch Geschrieben 28. Januar 2009 Teilen Geschrieben 28. Januar 2009 Beschreibe doch mal bitte genauer was Du mit deiner Abfrage bewirken willst. Im Moment verstehe ich dein Problem so: Mitarbeiter gibt ID ein um den Timestamp rauszufinden... Ich würde folgendes machen: Bei einem Dialog ist der Aufbau in Access folgender: Abfrage anlegen: select id, timestamp from tabelle1 Bericht anlegen: Hier werden die Daten ausgeben Formular anlegen: In der Oberfläche muss es ein Feld für die ID geben und ein Button mit dem die Abfrage gestartet wird. Wird die Abfrage ausgeführt gibst Du die ID als "Where" im SQL mit: Private Sub BUTTON1_Click() DoCmd.OpenReport "REPORT1", acViewPreview, , "ID = " & 'wert von der Textbox' End Sub Den 'Bericht' könnte man im Prinzip auch weglassen und das Ergebnis in einer MsgBox ausgeben; ein Bericht hat den Vorteil, dass er direkt ausgedruck und einfach bearbeitet werden kann. Ich hoffe die Erklärungen reichen auch ohne Bildchen ;-) Gruß, Batze Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.