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

Frage Microsoft Microsoft Office

GELÖST

ERLEDIGT - Access 2000 - Daten in andere Tabelle verlagern

Mitglied: thecaptain

thecaptain (Level 1) - Jetzt verbinden

16.05.2007, aktualisiert 21.05.2007, 6087 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
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 4 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 9 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 4 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...