Hallo,
sitze vor folgendem Problem:
Ich möchte, dass in Abhängigkeit ob ein Angebot erstellt wird oder "nur" eine Auftragsbestätigung verschickt wird, die Standardfwerte aktivieren bzw. deaktivieren.
Konkret:
Es gibt 1 Tabelle (ANGEBOTE) für Angebote und Auftragsbestätigungen mit den Spalten A-NR bzw. B-NR.
In meinem Formular ANGEBOT ERSTELLEN wird bei Umschalttaste = 0 nur die A-NR angezeigt (eingeblendet)
bei Umschalttast = 1 wird die B-Nr eingeblendet.
Für beide Felder habe ich voneinander abweichende Standardwerte (automatische fortlaufende Nummerierungen) im Formular ANGEBOT ERSTELLEN definiert.
Wenn ich nun bei der eingeblendeten A-Nr Werte (netto,datum etc.) eingebe, wird natürlich auch automatisch das Feld B-Nr mit der dort fortlaufenden Nummerierung gefüllt.
Umgekehrt natürlich ebenso.
Wie schaffe ich es nun, dass bei der Eingabe der für A-Nr relevanten Werte die B-Nr leer bleibt. Habe es u.a. mit default.value = null (vba) versucht, aber ohne Erfolg.
Gruss UFO (Ulla)
Hallo,
auch wenn ich das Konzept dieser Angebote/Auftragsbestätigungen -Umschaltung für falsch halte, könntest Du je nach "Status" der Umschalttaste lediglich das betroffenene Feld (A-NR bzw. B-NR) "standardisieren" ...
Hallo,
Standardwerte sind eben dazu da um beim Anlegen eines neuen Datensatzes vergeben zu werden.
Daher wirst du mit deiner Standardwert-Regelung immer diese Ergebnisse bekommen.
Möglich wäre daher in Abhängigkeit von Umschalttaste = x (was auch immer dabei ausgelöst wird) die Werte für Angebot bzw. Auftragsbestätigung zu vergeben.
Z.B. durch A-Nr-Feld = DMax("A-NR";"Angebote")+1
Jede andere Funktion zur Vergabe dieser Werte muss jedoch vorher abgeschaltet sein!
Zitatautomatische fortlaufende Nummerierungen
Wenn du damit AutoWerte meinst solltest das GRÜNDLICH überlegen - diese Werte sind für sprechende Nummerierungen NICHT geeignet!
In der Tabelle sollte dann dieser AutoWert gegen Zahl, LongInteger ausgewechselt werden.
Also erst mal Danke für die schnellen Antworten.
Ich bin mit euren Tipps auch richtig weit gekommen und war eben noch der Meinung die Lösung gefunden zu haben.
1. Standardisierung der ANR und BNR in vba eingegeben und die Standardisierung im Formular / Eigenschaft rausgelöscht also abgeschaltet.
Also automatische fortlaufende Nummerierung von ANR und BNR je nach gedrückter Umschalttaste (übrigens kein Autowert)
2. Außerdem bleibt das ANR Feld leer wenn BNR Feld gefüllt wird und umgekehrt. So wie es sein soll. (das war das Ziel)
Aber das ganze funktioniert eben leider nur einmal, weil beim nächsten also zweiten Angebot (ANR) (wenn vorher eine BNR vergeben wurde) kein Wert mehr im letzten Datensatz für ANR steht und somit die Rückgabe bzw. Fehlmeldung NULL lautet.
Vorgehensweise : DLookup nachdem vorher DMax ermittelt wurde.
Weiss jemand eine if-Anweisung mit der man den letzten Datensatz ohne Null (im Feld ANR) findet. So nach dem Motto wenn Rückgabewert Null, dann prüfe den vorletzten dann den vorvorletzten?
Alternativ bleibt mir wohl nichts anderes übrig doch noch 2 Tabellen anzulegen. Doch auch hier komme ich nicht weiter, da ich nicht weiss wie ich die Datensatzquelle im Formular durch Drücken der Umschalttaste ändern kann. Hilfe!!!
Halo,
ZitatAber das ganze funktioniert eben leider nur einmal, weil beim nächsten also zweiten Angebot (ANR) (wenn vorher eine BNR vergeben wurde) kein Wert mehr im letzten Datensatz für ANR steht und somit die Rückgabe bzw. Fehlmeldung NULL lautet.
Es ist noch unklar, wie und wann genau Du den/die Standardwert/e jeweils ermittelst...
O. st. Aussage läßt vermuten, dass nach der Speicherung eines ersten Angebotes (z. B. im Ereignis "Nach Aktualisierung") die Berechnung einer neuen ANR
nicht erfolgt.
Hallo,
ZitatAber das ganze funktioniert eben leider nur einmal, weil ...
Da muss ein anderer Fehler vorliegen - DMax ermittelt den höchsten Wert einer Spalte der Tabelle auch dann, wenn der letzte oder mehrere Datensätze in der betreffenden Spalte keinen Wert stehen haben.
Im Anhang dazu ein klitzekleines Beispiel mit einer Tabelle und einem Modul.
Starte im Modul mal unterschiedlich die beiden Routinen mit F8 und sieh dir auch die Tabelleneinträge dazu an.
HTH
[Anhang gelöscht durch Administrator]
Danke,
mit dem kleinen beispiel hast du mir echt weiter geholfen.
Mein Ansatz war viel zu kompliziert.
Hab die Lösung entsprechend Beispiel umgesetzt.
Habe dafür erst mal die Umschalttaste wieder rausgeschmissen und denke das dies jetzt aber auch kein Problem mehr darstellen sollte.
Schließlich müssen jetz die entsprechenden felder nur noch ein und ausgeblendet werden, damit vom Benutzer keine Eingabefehler gemacht werden.
Gruß
UFO (Ulla)
Hallo,
freut mich dass es dir nun gelungen ist. ;D