Also heute möchte ich, wenn auch sonst eher Fortgeschrittener der hier die Fragen beantwortet, selber mal eine Frage stellen. Also folgendes Problem eine einfache Access Datenbank - Tabelle mit 5 Feldern:ID-Datum-Name-Farbe-Buchstabe. ID ist Autowert. Gleichzeitig die Nummer auf einer Warenbeschriftung (wird jeweils ausgedruckt) Die Datenerfassung geht jedoch nur von 1 - 999. Bislang wurden dann bei erreichen der 999 die Daten gesichert, danach alle gelöscht und wieder von vorn begonnen (eine alte DOS Datenbank). Dieses Löschen möchte ich vermeiden. Ich möchte aber auch kein Extra Feld mit einer manuell vergebenen Nummer. Meine Überlegung war das Extra Feld als Berechnungfeld einzufügen. Mit einer Wenn Formel. das führt aber zwangsläufig zu unendlichen vielen Verschachtelungen und ist dennoch endlich. Wenn([ID]>=999; [ID]-998;Wenn([ID]>=1998; [ID]-1997; usw. Nicht wirklich elegant. Auch die Berücksichtigung der Anzahl() in der Formel hilft nicht wirklich. Zu meinem Leidwesen muss ich gestehen, dass ich von VBA nicht wirklich Ahnung habe. Deshalb kann ich auch in dieser Richtung keinen Lösungansatz suchen. Wäre daher auf Hilfe angewiesen. Also wenn jemand von euch eine respektable Lösung weiss, ich würd mich freuen, wenn er sie mit mir teilt.
Vielen Dank Mike
Hallo,
Manches ist mir unklar an der Situation:
Also heute möchte ich, wenn auch sonst eher Fortgeschrittener
der hier die Fragen beantwortet, selber mal eine Frage
stellen. Also folgendes Problem eine einfache Access Datenbank
- Tabelle mit 5 Feldern:ID-Datum-Name-Farbe-Buchstabe. ID ist
Autowert. Gleichzeitig die Nummer auf einer Warenbeschriftung
(wird jeweils ausgedruckt)
d. h. der ID-Wert wird für den Druck benutzt…?
Die Datenerfassung geht jedoch nur
von 1 - 999.
Bslang wurden dann bei erreichen der 999 die
Daten gesichert, danach alle gelöscht und wieder von vorn
begonnen (eine alte DOS Datenbank).
Von was spricht Du jetzt? Von der alten DOS-DB oder einer Access-DB?
Dieses Löschen möchte ich
vermeiden.
Verständlich, nur, ist das die Aufgabe für die Umsetzung in eine Access-DB oder soll eine vorhandene Access-DB entspr. umgebaut werden?
Ich möchte aber auch kein Extra Feld mit einer
manuell vergebenen Nummer. Meine Überlegung war das Extra Feld
als Berechnungfeld einzufügen. Mit einer Wenn Formel. das
führt aber zwangsläufig zu unendlichen vielen
Verschachtelungen und ist dennoch endlich. Wenn([ID]>=999;
[ID]-998;Wenn([ID]>=1998; [ID]-1997; usw. Nicht wirklich
elegant.
das ist zu milde ausgedrückt , es ist völliger Quatsch.
Auch die Berücksichtigung der Anzahl() in der Formel
hilft nicht wirklich.
Nochmal die Frage: Mit was genau bist Du nun beschäftigt?
Zu meinem Leidwesen muss ich gestehen,
dass ich von VBA nicht wirklich Ahnung habe.
das ist nichts Schlimmes…
Deshalb kann ich
auch in dieser Richtung keinen Lösungansatz suchen. Wäre daher
auf Hilfe angewiesen. Also wenn jemand von euch eine
respektable Lösung weiss, ich würd mich freuen, wenn er sie
mit mir teilt.
kann ich versuchen, wenn mir die Situation klarer wird…
Vermutlich:
Wenn die DOS-DB (wie oben beschrieben) in eine Access-DB „konvertiert“ werden soll, dann gibt es bei einem Autowert ( und hier in diesem Fall einem inkrementellen Autowert) keine Begrenzung (innerhalb eines gewissen Wertebereiches).
Welchen Sinn eine weiterhin ( in der Access-DB) zu verwendete Begrenzung bei 999 haben sollte, wäre mir unklar. Lösbar wäre es allerdings schon, indem die 3 rechten Stellen aus den Ziffern des Autowertes ausgeschnitten und entspr. weiter verarbeitet würden.
Gruß
Franz,DF6gl
Hallo Mike!
Wenn Du eh´ eine ID mit Autowert hast dann hast Du ja alles! Lösch sie nicht und lass weiterzählen!
Gruß
Martin
Hallo Martin, Hallo Franz,
Ich versuch mal mich etwas Klarer auszudrücken.
Also Die Daten und auch die Feldvorgabe kommen von einer alten DOS DB- (F&A) jetzt soll diese Struktur in Access umgesetzt werden weil F&A nicht Windows kompatibel. Die DB wird in einer Wäscherei eingesetzt. Bislang mit F&A erfasst und dan als so eine Art Etikett ausgedruckt und an die Wäschekörbe geklebt. Welche Funktion das Feld ID hat kann ich nicht so genau sagen. Ich nehme an zur eindeutigen Identifizierung. Wahrscheinlich ist das ganze eine Art Code die die Wäsche in der Bearbeitung durchlaufen muss. Also Waschtemperatur, Flecken, Mangeln oder Bügeln, keine Ahnung. Jedenfalls scheint das System nur bis 999 zu gehen und fängt dann wieder bei 1 an. Da in Access ein Feld (hier ID) als Autowert deklariert jedoch keine Duplikate zulässt, müsste jeweils bei erreichen von 999 Datensätzen mit einer Jungfreulichen DB wieder begonnen werden. Was ja Blödsinn ist. Jetzt könnte man zusätzlich zum Auto-ID Feld ein weiteres Feld Typ Zahl einbauen und die Nummerierung manuell eingeben. Ist aber Fehlerträchtig und/oder aufwendiger als automatisch hochzählen. Wenn man jetzt ein Feld einbauen könnte welches einerseits „automatisch“ bei jedem neuen DS +1 zählt, sich aber dennoch bei Erreichen der Zahl 999 wieder mit 1 beginnen ließe, dann könnte man das Feld ID zur Identifizierung des Datensatzes nutzen, jedoch das neue Feld für den Ausdruck auf dem Ettikett. Weil dieses Feld ja nur zur Identifizierung des Wäschkorbes genutzt wird. Wenn Ihr da Ideen habt. Ich hoffe es ist jetzt etwas deutlicher geworden.
Ihr könnt mir auch direkt mailen streetrat at live.de
Vielen Dank für Eure Hilfe
Mike
Moin, Mike,
es bleibt schwierig, weil nicht klar ist, wozu die vorgegebene Nummer verwendet wird.
Sollte es nur ums Drucken der Etiketten gehen, dann könntest Du einen Satz aufbauen, der einen Autowert als Schlüssel verwendet und die Nummer vom DOS-System schlicht als Datenfeld benutzt.
Gruß Ralf
Hallo,
um das kurz zu machen und nicht weiter auf die offenen Fragen einzugehen:
schreib in den Steuerelementinhalt des Textfeldes , dessen Wert auf die Wäschekorb-Etikette gedruckt werden soll (vermutlich mit einem Bericht) folgenden Ausdruck:
=Rechts([ID];3)
und fertig.
Wobei „ID“ der Primärschlüssel der Tabelle mit Datentyp Autowert, inkrementell, ist.
Gruß
Franz,DF6GL
Sorry ihr beiden, ich weiß nicht wie ich es genau erklären soll. Versuch 3.
Also bislang wurde in der Wäscherei F&A verwendet, geht nicht mehr aus genannten Gründen. In dieser F&A Datenbank haben die über einen Zeitraum von Wochen fortlaufende Datensätze erstellt die zum Kennzeichnen der Wäsche genutzt wurden. Die Felder waren Nummer (Typ Autowert)- Farbe (Typ Text mit Auswahlliste)-Name (Typ Text) keine Verknüpfung zu einer Adressliste-Buchstabe (Typ Text) und Datum.
Meine Nachfrage hat nun ergeben das der Datensatz nach dem Ausdruck des Etikettes entsteht.
Also es gibt da eine Maschine die dieses Etikett erzeugt (hat mit den unterschiedlichen Annahmestellen der Wäscherei zu tun) ähnlich wie ein Paginierstempel, bei diesem ist bei 999 Schluss und es beginnt wieder mit 1. Nachträglich meist am Abend oder/WE werden dann die erstellten Etiketten in die Datenbank eingepflegt. Diese Erfassung dient der späteren Zuordnung zu einem Auftrag (Vor allem bei Reklamationen). So jetzt wieder zu Access, wenn ich nun ein Feld (zB. Nummer oder ID) in die Tabelle einfüge vom Typ Autowert zählt dieses +1 bei jedem neuen Datensatz, also auch jenseits von 999 eben wegen der Regel „keine Duplikate“ Ich brauche jetzt ein Feld welches einerseits jeweils +1 automatisch erzeugt, wenn ein DS hinzugefügt wird, andererseits es aber zulässt, ab 999 wieder mit 1 zu beginnen und dieser Vorgang jedesmal wenn 999 erreicht wird.
Aber ich merke schon hier beim Schreiben, dass sich darin noch eine weitere Tücke verbirgt, wenn aus mir nicht ersichtlichen Gründen ein Etikett fehlt (Fehldruck, verloren oder…) und es somit zu einem Überspringen kommt (2, 3, 4, 5, 7, 8,10) dann ist das automatische System durcheinander. Ich denke es wird auf manuelles eintragen hinauslaufen.
Ich sag euch noch mal vielen Dank.
Dass ist nicht selbstverständlich
Gruß Mike
Hallo,
wenn diese Nummer von einem anderen System generiert wird, kommst Du über eine manuelle Erfassung nicht herum, das hat mit dem DB-System an sich nichts zu tun und muss auch in der alten DOS-Anwendung so gewesen sein, wenn Dein (berechtigter) Einwand des Daten-Chaos nicht ignoriert worden ist.
Ich schlage vor, sich zunächst und unabhängig von der Historie ein Konzept zum geschäftlichen Ablauf und der Aufgabe der DB zu überlegen…
Gruß
Franz,DF6GL
Ich gebe dir in allen Punkten recht. Die Sache mit dem Konzept scheiterte bisher leider daran das die gute Frau der Wäscherei sich nicht wirklich gut ausdrückt in dem was sie möchte, bzw. sie von der Simplizität ihrer alten DOS DB so überzeugt ist, das sie für die ihr ungewohnte Bedienung auf einer Windows Oberfläche nicht wirklich zu erwärmen ist. Zugegeben die „Alte F&A“ ging wirklich einfach, das ist Access schon kompliziert gegen. Ihre Aussagen „ne das will ich nicht und das ist zu kompliziert und jenes war aber früher viel einfacher“ haben mich schon überlegen lassen, ihr einen Netzunabhängigen XP Rechner hinzustellen und gut ist, oder mit einer virtuellen XP Version zu arbeiten. Aber all das ist ihr zu umständlich. Ich muss mal sehen wie ich mit ihr weiter verfahre. Ich danke euch beiden jedenfalls ganz herzlich und wünsch erst mal alles Gute und viele Grüße aus Holzminden. Mike
Ps.: Wie kann man diesen Treat jetzt abschließen? Was muss ich tun? Sternchen habe ich glaub ich schon vergeben.