Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Stapi am April 14, 2012, 13:20:05

Titel: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: Stapi am April 14, 2012, 13:20:05
Hallo

Ich stehe gerade gedanklich voll auf dem schlauch und benötige wieder mal eure Hilfe.
Es wir in ein Formular Datensätze geschrieben der Index (Zähler) als Zahl soll beim anfügen eines Datensatz um immer einen wert 1 hochgezählt werden, ist der max Wert von z.b 30 erreicht darf es keine Möglichkeit mehr geben einen Datensatz an zu fügen. Nun kann es vor kommen das der Anwender einen Datensatz mit dem Index z.b 15 löscht, wie kann ich nun diese Lücke schließen so das die nachfolgenden Datensätze wieder im fortlaufender Index angezeigt werden.
Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: DF6GL am April 14, 2012, 13:22:49
Hallo,

welchen Sinn soll so ein Zähler ergeben?

Was ist der eigentliche Hintergrund bei dieser Geschichte?

Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: Stapi am April 14, 2012, 13:53:34
Hallo Franz

Diese Datenbank soll genutz werden um diese Parameter später in eine Maschine zu schreiben, dabei ist es wichtig das die Reihenfolge des Zähler genau so dem der Maschine enspricht. Zu erwähnen ist noch der Aufbau der Tabelle:               Autowert: Fach_id , Fremdschlüssel: FK_Fach , Zähler: als Zahl  Fach_Parameter: als Zahl. Solange der Fremdschlüssel gleich ist sollen allen angefügten Datensätze hochgezählt werden bis zur vorgegebenen max Grenze.
Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: DF6GL am April 14, 2012, 14:16:41
Hallo,

irgendwie blicke ich nicht die Funktionsweise..

Kommt der "Zähler"  denn auch aus den Maschinendaten, bzw. braucht die Maschine beim "Hochladen" der Parameter diese Reihenfolge?

Hat der Zähler irgendeine andere Bedeutung als  nur die "Anzahl" der DS anzuzeigen (d. h. als laufende Nr zu fungieren)?

Wenn das eigentliche Kriterium lediglich die Anzahl der DS (bezogen auf einen "FK_Fach" -Wert), dann könnte die akt. Anzahl der DS mit Hilfe der DCount-Funktion ermittelt (oder auch als RecordCount in einem passenden Unterform) und mit entspr. Reaktion überprüft werden.

Um den "Zähler" (der hier in Access gar nicht gebraucht wird) wieder beginnend bei 1 hochlaufend zu setzen (d. h. neu zu generieren), kann der Recordset des o. g. Unterforms ebenfalls herangezogen werden.


Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: Stapi am April 14, 2012, 14:34:05
Hallo Franz

ZitatKommt der "Zähler"  denn auch aus den Maschinendaten, bzw. braucht die Maschine beim "Hochladen" der Parameter diese Reihenfolge?
Ja das ist exakt so.

ZitatHat der Zähler irgendeine andere Bedeutung als  nur die "Anzahl" der DS anzuzeigen (d. h. als laufende Nr zu fungieren)?
In der Maschine gibt es den Zähler 1, aus der Datenbank wird der Datensatz mit dem  Zähler1 und dem Parameter,  dem Datensatz der Maschine zugewiesen.

Würde nun in der Datenbank der Zähler z.b 35 verwendet könnte die Maschine ihn nicht verwenden da sie für diese Funktion eventuell nur bis Zähler 30 einlesen kann
Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: DF6GL am April 14, 2012, 14:41:48
Hallo,

naja,  dann mach das halt so wie vorhin gesagt in einer Haupt-/Unterformular-Konstruktion:

Max. Anzahl DS (30) mit Dcount (oder Ähnlichem) abchecken.

Bei/nach einer Löschung eines DS die "Zählerspalte" wieder mittels Recordset regenerieren.  Dass dabei die einzelnen DS zum vorherigen Zustand unterschiedliche Zähler-Werte verpasst bekommen, sollte aber klar sein....
Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: Stapi am April 14, 2012, 14:55:41
Hallo Franz

ZitatMax. Anzahl DS (30) mit Dcount (oder Ähnlichem) abchecken.
Habe ich hier im Forum Beispiele gefunden die ich für mich ändern muss, das bekomme ich ich hin.

ZitatBei/nach einer Löschung eines DS die "Zählerspalte" wieder mittels Recordset regenerieren.  Dass dabei die einzelnen DS zum vorherigen Zustand unterschiedliche Zähler-Werte verpasst bekommen, sollte aber klar sein....
Muss ich dir ehrlich im Moment sagen weiss nicht wie das im Ansatz Anfangen soll.
Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: DF6GL am April 14, 2012, 18:31:14
Hallo,

hier ein Beispiel, das Du an Deine Gegebenheiten anpassen mußt  :

Dim rs As DAO.Recordset, i As Long

Set rs = Me.RecordsetClone
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
i = i + 1
rs.Edit
rs!Zähler= i
rs.Update

rs.MoveNext
Loop
Me!Zähler.DefaultValue = i + 1
End If

Set rs = Nothing

Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: Stapi am April 14, 2012, 19:01:34
Hallo Franz

Danke für die Unterstützung, das hilft mir sehr.
Titel: Re: Beim Löschen eines Datensatz Index fortlaufend anzeigen
Beitrag von: Stapi am April 15, 2012, 18:56:53
Hallo Franz


Ich habe das wunderbar heute, dank deiner Hilfe Umsetzen können, vielen Dank dafür