Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: cyberchris am August 05, 2011, 06:23:22

Titel: Datensatz kopieren + zusätzliche Angaben
Beitrag von: cyberchris am August 05, 2011, 06:23:22
Hallo zusammen,

ich habe mir ein Code gebastelt bei dem ein Datensatz in eine andere Tabelle kopiert werden soll. Die Zieltabelle hat die gleichen Spalten + zusätzlich 2 weitere, die auch befüllt werden sollen (M_Datum, M_Benutzer).
Der Code ist nicht ganz korrekt, jedoch kann ich den Fehler nicht finden. Muss ich die Zielspalten angeben?
Also In die Tabelle PMDB_Fehlerhaft soll der Datensatz aus PMDB + aktuelles Datum und CurrentUser. Die beiden zusätzlichen Spalten sind auch in der PMDB_Fehlerhaft enthalten.

           strSQL2 = "INSERT INTO [PMDB_Fehlerhaft] " & _
                   "SELECT *, " & Format(Now, "yyyy\-mm\-dd hh:MM:ss") & ", " & CurrentUser & " " & _
                   "FROM PMDB " & _
                   "WHERE IDoWAG='" & Me!IDoWAG & "'"
                   CurrentDB.Execute strSQL2, 128 'dbFailOnError
                   MsgBox "Der Datensatz wurde archiviert!", vbInformation

Zusätzlich hat die PMDB_Fehlerhaft eine erste Spalte mit AutoID also Primärschlüssel.

Vielen Dank
Gruß Christoph

PS: Kann man das einfach auch in eine Excelliste, die Schreibgeschützt ist kopieren? Wäre eigentlich besser.
Titel: Re: Datensatz kopieren + zusätzliche Angaben
Beitrag von: database am August 05, 2011, 09:04:44
Hallo,

3 Dinge, die mir aufgefallen sind:

"INSERT INTO [PMDB_Fehlerhaft] " & _
                   "SELECT *, " & Format(Now, "\#yyyy\-mm\-dd\#") & ", " & CurrentUser & _
                   " FROM PMDB" & _
                   " WHERE IDoWAG=" & Me!IDoWAG
                   CurrentDB.Execute strSQL2, dbFailOnError

Die Formatierung des Datums, Wenn die IDoWAG ein LongInteger ist und der Aufruf von CurrentDB.Execute erwartet nur das Statement und Options

Unter der Voraussetzung dass die Reihenfolge der Felder in der Zieltabelle das Datum und der User an den letzten beiden Stellen stehen .
CurrentUser ist eine Variable oder ein Aufruf?


HTH
Titel: Re: Datensatz kopieren + zusätzliche Angaben
Beitrag von: cyberchris am August 31, 2011, 07:31:59
Hallo,

verstehe ich nicht ganz.
Versuche aber mal zu antworten:

Die Reihenfolge ist gleich der Tabelle PMDB + Spalten "M_Date" und "M_User"
Current_User ist ein Aufruf von Access (ich verwende die Benutzerverwaltung von Access.

Besser ist, wenn ich die Daten gleich in eine Exceltabelle bekomme.
Geht das, dass der Datensatz am Ende oder am Anfang des Sheets eingefügt wird, ohne die bestehenden Daten zu löschen?
Jeder Datensatz in einer Zeile und bestenfalls jedes Feld in eine Spalte.

Ich habe hierzu schon ne Stunde gegoogelt und nichts passenden gefunden. Wäre toll, wenn ich ein Beispiel bekomme.

Herzlichen Dank
gruß Christoph
Titel: Re: Datensatz kopieren + zusätzliche Angaben
Beitrag von: cyberchris am Oktober 27, 2011, 12:41:07
Hallo,
ich bin bisher leider immer noch nicht weiter gekommen.
Kannst du nochmals helfen?

Danke
gruß Christoph
Titel: Re: Datensatz kopieren + zusätzliche Angaben
Beitrag von: DF6GL am Oktober 27, 2011, 21:40:19
Hallo,


etwa so:

strSQL2= "INSERT INTO [PMDB_Fehlerhaft] " & _
                    "SELECT *, Now() As M_Date   , '" & CurrentUser & "' As M_User  "   & _   ' Now(): mit Uhrzeit , Date() nur Datum ohne Uhrzeit.
                    " FROM PMDB" & _
                    " WHERE IDoWAG=" & Me!IDoWAG     ' IDoWAG: Zahl ,Long

                    CurrentDB.Execute strSQL2, dbFailOnError

Titel: Re: Datensatz kopieren + zusätzliche Angaben
Beitrag von: database am November 01, 2011, 11:32:52
Hallo,

ich antworte auch ein wenig (stark) verspätet.

wie ich sehe hats da die halben Sätze in meiner Antwort irgendwie verschluckt, wodurch diese (#1) aussieht als hätte ich den Deutschunterricht geschwänzt  ;)
Aber Franz hat dankenswerter Weise schon nachgehakt.

ZitatBesser ist, wenn ich die Daten gleich in eine Exceltabelle bekomme
Wieso dieses? Welchen Vorteil versprichst du dir davon, Datensätez aus einer Datenbank nach Excel zu verfrachten?

IMHO ist das kein großes Problem - es gibt hat ein paar unterschiedliche Möglichkeiten dafür.
Wie gut bist du denn mit VBA unterwegs?

p.s.
Du mußt in einem SQL-Statement, welches per VBA abgesetzt wird einen Datumseintrag entweder US- oder ISO Formatieren! (Zielfelddatentyp =  Datum/Uhrzeit)
Siehe dazu http://www.donkarl.com?FAQ6.8 (http://www.donkarl.com?FAQ6.8)