Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst ERLEDIGT - Access 2000 - Daten in andere Tabelle verlagern

Mitglied: thecaptain

thecaptain (Level 1) - Jetzt verbinden

16.05.2007, aktualisiert 21.05.2007, 6101 Aufrufe, 9 Kommentare

Hallo zusammen.

Folgende Situation:
Wir haben hier eine Access2000 MDB-Datei, in der verschiedene Lagerdaten erfasst werden. In einer der Tabellen sind diese Daten bereits über einen längeren Zeitraum erfasst worden und mit der Zeit hat sich da einiges angesammelt. Auch die Geschwindigkeit von Abfragen wird schon beeinträchtigt.
Daher sollen alte Daten (Datum wurde als entsprechender Felddatentyp mit gespeichert) in eine identisch aufgebaute "Ablage"-Tabelle ausgelagert werden.

Ein Kollege hatte das bereits einmal gemacht, der Mann ist aber leider die nächsten paar Wochen im Urlaub und steht nicht zur Verfügung. Ich weiß, dass er dafür kein VBA verwendet hat. Ich könnte mir noch vorstellen, dass er zwei separate Abfragen gemacht hat. Eine zum Kopieren der Daten in die Ablage und eine um aus der Haupttabelle den alten Kram zu löschen. Wie das mit dem Kopieren aber funktionieren könnte weiß ich nicht.

Gibt es für sowas überhaupt eine Möglichkeit in SQL oder hat jemand vielleicht sogar eine viel bessere Idee?
Mitglied: cim
16.05.2007 um 08:26 Uhr
Moin,
natürlich kannst Du das per SQL programmieren.
Einfacher ist es vielleicht mit dem Access-Assistenten. Ich habe zwar nur 2003, sollte aber identisch mit 2000 sein.

Siehst Du das Datenbankfenster? Wenn nein, drücke F11.

Erstelle eine neue Abfrage aus der Ursprungstabelle mit Daten ab dem gewünschten Datum.
Ändere den Typ der Abfrage in "Tabellenerstellungsabfrage" in der Entwurfsansicht und gebe der neuen Tabelle einen Namen wie "neu...".
Abfrage ausführen.
Benenne die Ursprungstabelle um, z.B. "alt..."
Gebe der Tabelle "neu..." den gleichen Namen wie die Ursprungstabelle vorher hatte.

Natürlich sollte bei Access immer !!! eine Sicherungskopie der Datenbank existieren.

Bitte kurze Info, falls Du den Ablauf detaillierter brauchst.

Schöne Grüße
cim
Bitte warten ..
Mitglied: Guenni
16.05.2007 um 08:43 Uhr
@thecaptain

Hi,

wenn's auf einmal so dringend ist, und man kein SQL kann, so kann man sich auch behelfen,
in dem man die Tabelle kopiert, und unter neuem Namen wieder einfügt. Dann das Original
öffnen und alle alten Daten manuell löschen.

SQL-Version:

create table neue_tabelle select * from alte_tabelle where Datum < "tt.mm.jjjj"

anschl.:

delete from alte_tabelle where Datum < "tt.mm.jjjj"

Generell würd' ich aber meinen, wenn Daten über einen so langen Zeitraum erfasst wurden,
dass die Performance schon beeinträchtigt wird, würde ich warten, bis der Kollege wieder da ist.
Auf die paar Tage kommt's ja jetzt auch nicht mehr an, und wenn, dann hätte man den Kollegen
damit beauftragen sollen, bevor er in Urlaub geht.

Meine SQL-Version funktioniert jetzt ja mal für eine Tabelle, wie sich das Ergebnis aber
auf eure gesamte Datenbank auswirkt, kann ich natürlich nicht sagen, weil ich die Struktur
nicht kenne. Oder gibt es nur die eine Tabelle für Lagerdaten?

Grüße
Günni
Bitte warten ..
Mitglied: thecaptain
16.05.2007 um 09:47 Uhr
Ja, ich denke das ist das einfachste. Ehe ich mir jetzt noch lange den Kopf über eine elegante SQL-Version zerbreche verwende ich lieber die manuelle "quick and dirty"-Methode.

Danke euch beiden!
Bitte warten ..
Mitglied: thecaptain
16.05.2007 um 10:23 Uhr
Eine Frage hätte ich noch:
Da die Daten in der Tabelle manchmal etwas durcheinander sind, möchte ich mich nicht auf meine persönliche Gründlichkeit verlassen und wenigstens das mit SQL erledigen:
DELETE * FROM tbl_test WHERE Datum < "01.01.2007";

Dabei bekomme ich aber immer den Fehler "Datentypen in Kriterienausdruck unverträglich". Das Feld "Datum" habe ich auch als solches definiert. Verpeile ich da grade wieder etwas?
Bitte warten ..
Mitglied: cim
16.05.2007 um 10:50 Uhr
Das Datum muss in # stehen und nicht in ".
Bitte warten ..
Mitglied: cim
16.05.2007 um 10:52 Uhr
Das Datum muss in # und nicht in " stehen.
Bitte warten ..
Mitglied: thecaptain
16.05.2007 um 12:42 Uhr
Hey, eine neue Fehlermeldung:
"Syntaxfehler in Datum in Abfrageausdruck ..."

Das Teil sieht jetzt folgendermaßen aus:
DELETE FROM tbl_test WHERE Datum < #01.01.2007#;
Bitte warten ..
Mitglied: cim
16.05.2007 um 13:20 Uhr
Mit dem Abfrageassistenten in Access ist das zwar keine Programmierung, aber einfach.
Darin kannst Du in der Entwurfsansicht die Löschabfrage erstellen.

Dort ist dann zu sehen, dass Access das Datum 31.12.2004 für SQL anpasst:
...
WHERE (((tbl_test.datum) < #12/31/2004#));
Bitte warten ..
Mitglied: thecaptain
21.05.2007 um 07:42 Uhr
Perfekt. Jetzt klappt alles. Habe es jetzt folgendermaßen gemacht:

1. Sicherungskopie anlegen!!!
2. Tabelle "lagerablage" in "lagerablage 2002-2006" umbenennen
3. Tabelle "lager" kopieren mit dem Dateinamen "lagerablage"
4. Per Löschabfrage aus "lagerablage" alle Daten bis Ende März löschen
DELETE * FROM lager WHERE (((lager.Datum) > #03/31/2007#));
5. Per Löschabfrage aus "lager" alle Daten vor Ende März löschen
DELETE * FROM lager WHERE (((lager.Datum) < #04/01/2007#));

Die simpelsten Lösungen sind oftmals die besten, oder um Koroljow zu zitieren:
"Die Genialität einer Konstruktion liegt in ihrer Einfachheit. Kompliziert bauen kann jeder."

Vielen Dank für die Hilfe!
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
ACCESS Tabellen vergleichen
gelöst Frage von abuelitoMicrosoft Office4 Kommentare

Hallo, ich habe eine ACCESS 2003 Datenbank mit 2 Tabellen. Jede Tabelle hat nur eine Spalte. Tabelle1 hat ca. ...

Datenbanken
Excel Tabelle in Access Datenbank
gelöst Frage von Dr.CornwallisDatenbanken9 Kommentare

Liebe Gemeinde, ich muss aus einer Excel Tabelle Daten in einen Access Table importieren, nun möchte ich die Excel ...

VB for Applications

VBA Access: Synchronisation zwischen Recordset und Access Tabelle

Frage von qwertz1VB for Applications2 Kommentare

Hallo, Ich habe in Access ein VBA-Skript programmiert. Das Skript holt sich Daten von einer MySQL Server. Das geht ...

Datenbanken

Access 2010 - Abfrage über mehrere Tabellen

gelöst Frage von EisbrecherinDatenbanken12 Kommentare

Hallo zusammen! Ich bin gerade etwas am Verzweifeln mit Access 2010. Meine Datenbank besteht aus folgenden Tabellen / Beziehungen: ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++27 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...