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

Autozähler in MS Access 2007

Mitglied: HippoHippo

HippoHippo (Level 1) - Jetzt verbinden

28.07.2011 um 14:36 Uhr, 6768 Aufrufe, 4 Kommentare

Automatischer Zähler der Tabelleneinträge ohne Abfrage

Ich habe eine Datenbank (Access 2007) mit den Feldern 'Datum', 'Stichwort' und 'Eigenschaft' erstellt.
Im Gegensatz zum AutoWert-Felddatentyp möchte ich ein Feld "Zähler" von 1 bis maximal 9999 einführen, daß bei Eingabe eines neuen Datensatzes in die Datenbanktabelle diese Zahl ohne Duplikat kreiert und mit der tatsächlichen Anzahl der vorhandenen Datensätze korrespondiert.
"AutoWert" funktioniert bedingt, da es vorkommt, daß nach Revision der Einträge Datensätze wieder gelöscht werden (müssen).
Aber es soll eine vorgenommene Zuordnung beibehalten werden, auch wenn Datensätze durch Korrektion aktualisiert werden.

Kann in der Datentabelle ein solches Feld erstellt werden?
Oder ist dies ohne "separate" Abfrage nicht möglich?

Grüße
HippoHippo
Mitglied: Berrnd
28.07.2011 um 22:08 Uhr
Hi,

ich denke das ist ohne selbst Basteln nicht möglich.
Am einfachsten zu lösen ist das, denke ich, mit einem Trigger auf die entsprechende Tabelle (VBA).
Soweit ich weiß, sind Trigger aber erst ab Access 2010 möglich...
Alternativ könntest du auch die entsprechenden Events im Eingabeformular, falls es so etwas gibt, benutzen.

Viele Grüße - Bernd
Bitte warten ..
Mitglied: HippoHippo
29.07.2011 um 12:47 Uhr
Bernd,
vielen Dank.
Die 2010-er-Version steht mir nicht zur Verfügung.
Die "Formular"-Idee kam mir auch. So werd' ich's wohl anpacken, obwohl eine Lösung, wie vor geschrieben, mein Favorit gewesen wäre.
Grüße
HippoHippo
Bitte warten ..
Mitglied: NetWolf
09.08.2011 um 23:01 Uhr
Moin Moin,

>bei Eingabe eines neuen Datensatzes in die Datenbanktabelle diese Zahl ohne Duplikat kreiert und mit der tatsächlichen Anzahl der vorhandenen Datensätze korrespondiert.

das kann nicht funktionieren wenn Datensätze gelöscht werden, es würden automatisch doppelte Zahlen generiert = mit der Anzahl der Datensätze korrespondierend, oder da das ja nicht gewünscht ist = neu Zahl, die wieder nicht mit der Anzahl der Datensätze korrespondiert.

Mal eine andere Idee:

Du erstellst deine Tabelle mit einen Autowert-Feld, das ganz normal hochgezählt wird.
Nun werden Datensätze gelöscht, d.h. es entstehen Lücken in der Nummerierung. Die Anzahl der Datensätze und die Nummerierung stimmen nicht mehr überein.

Einfache Lösung:

- eine Kopie der Tabelle erstellen (ohne Daten)
- eine Anfügeabfrage erstellen, in der die Daten der Originaltabelle in die kopierte Tabelle übertragen werden.
- wichtig, das Feld mit dem Autozähler darf nicht mit übertragen werden!!
- anschließend die "alte" Tabelle löschen
- fertig

du erhältst eine automatisch komplett durchnummerierte neue Tabelle.

VBA Code der dir hilft:

'Tabelle kopieren
DoCmd.CopyObject , "DeineTabelle_neu", actable, "DeineTabelle_alt"

'Inhalt löschen in neuer Tabelle
SQL_Code = "DELETE DeineTabelle_neu.ID, * FROM DeineTabelle_neu;"
DoCmd.RunSql SQL_Code

'Datensätze aus alter Tabelle in neue Tabelle einfügen
SQL_Code = "INSERT INTO DeineTabelle_neu ( xDatum, Stichwort, Eigenschaft ) SELECT DeineTabelle_alt.xDatum, DeineTabelle_alt.Stichwort, DeineTabelle_alt.Eigenschaft FROM DeineTabelle_alt;"

DoCmd.RunSql SQL_Code
oder auch
db.execute SQL_Code

'ggf. wenn du nicht gleich löschen willst
DoCmd.Rename <neuertabellenname>, actable, <altertabellenname>

'alte Tabelle löschen
DoCmd.DeleteObject acTable, DeineTabelle_alt

in der Summe also 6 Zeilen VBA Code

Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: Biber
10.08.2011 um 16:32 Uhr
Moin HippoHippo,

ich würde -wenn denn wirklich die gesetzte Rahmenbedingung "Zähler soll mit der tatsächlichen Anzahl der vorhandenen Datensätze korrespondieren"- nicht angefasst werden soll- KEINERLEI Neuberechnung des stinknormalen Access-AutoWert-Feldes machen.

Weil:
  • stressärmer ist es, die "bei der Revision rausfliegenden Datensätze" einfach nur "logisch zu löschen". Die bekommen dann halt ein J/N-Feld "Gelöscht" oder "ungültig" oder ein "Löschdatum" und werden bei allen Queries rausgefiltert in der Where-Bedingung.
  • damit ist gewährleistet, dass Verweise/Referenzen/ParentChild-Beziehungen bei einer ID-Neuvergabe niemals zur Blockade oder zur Falschzuordnung führen. Wenn ein Datensatz beim Anlegen den Autowert 4711 bekommen hat, dann bleibt das der Datensatz mit der ID 4711 bis Schalke 04 Deutscher Meister wird.
  • fändest du es denn z.B. hier im Forum sinnvoll, wenn jedesmal unsere UserIDs automatisch neuberechnet werden, wenn sich wieder mal ein eingeschnappter Troll hier abmeldet? Das kann doch auch für dich kein unlösbares Problem sein, mit einer "größten vergebenen ID gleich 100000" zu leben, auch wenn die "aktiven" Sätze nur 90000 sind? Machen doch alle so...

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Access 2007
gelöst Frage von EverestMicrosoft Office2 Kommentare

Hallo Access-Spezialist, kann mir jemand helfen mit der Access Datenbank, die ich selbst zusammen gebastelt habe. Ich habe zwei ...

Datenbanken
Hilfe in MS Access
Frage von endadaDatenbanken2 Kommentare

Hey alle zusammen, ich habe folgendes Problem: Ich versuche eine Datenbank mit Access zu erstellen, die wie im Screenshot ...

Datenbanken
MS Access Datenbank
gelöst Frage von endadaDatenbanken18 Kommentare

Hey alle zusammen, ich habe folgendes Problem: Ich versuche eine Datenbank mit Access zu erstellen, die wie im Screenshot ...

Microsoft Office
MS Access - Verlinken von Suchergebnissen
gelöst Frage von PandamirMicrosoft Office2 Kommentare

Guten Morgen, der Titel ist nicht prickelnd aber etwa das wieder was ich machen möchte. Ich habe mir eine ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 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 3 TagenTipps & Tricks

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

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

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

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

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...