PDA

Vollständige Version anzeigen : hilfe..., hilfe..., hilfe... HELFT MIR, HERR GOTT NOCH MAL!!!


Torasin
30.08.2001, 07:35
Ich bin nur ein armer kleiner Praktikant, der gerade dazu genötigt wird eine Datenbank mit alle im Verein vorhandenen Hard-und Software zu erstellen. Zu diesem Zwecke habe ich hier einen Ordner voller Rechungen über allen möglichen Kram, der IRGANDWANN einmal gekauft wurde. Auf diesen Rechnungen stehen die Netto-Beträge der einzelnen Artikel. Wollen will Chef aber Brutto. Nun habe ich also zwei Währungsfelder (Kaufpreis-Netto;Kaufpreis-Brutto). Mein inständiger Wunsch ist nun, dass Access den Brutto-Betrag errechnet. Dazu habe ich bei STANDARDWERT folgende Zeile eingegeben:
=[Kaufpreis-Netto]*1,16
Und diese Antwort erhalte ich dann:
Das Datenbankmodul erkennt entweder das Feld "Kaufpreis-Netto" in einem Gültigskeit ausdruck oder den Standardwert in der Tabelle "Artikel" nicht.
Was will Microsoft mir damit sagen? Und vor allem WAS MACHE ICH DAGEGEN!!!
Helft mir. Oh, bitte, bitte, so helft mir doch.

Simon
30.08.2001, 07:46
Hallo,

wo hast Du den Feld Standartwert, in einem Formular oder in einer Tabelle?

Versuchs doch einfach mal bei Steuerelementinhalt wenn Du ein Formular hast!

Steuerelementinhalt: =[Kaufpreis-Netto]*1,16

Gruss Simon

maba
30.08.2001, 07:53
Überprüfe doch einfach mal deine Tabelle und deren Feldtypen und Einstellungen die Du vorgenommen hast.

MarkusR
30.08.2001, 08:00
1. Datentyp Währung...würd ich lieber als double definieren (Währung ist immer die Währung im Windows-System, und die wechselt demnächst wohl)

2. das Mit dem Standardwert kann nicht klappen, weil er nur direkt beim Neuanlegen gesetzt wird, wo der Netto-Betrag noch gar nicht ausgefüllt ist.

Es gäbe zwei Möglichkeiten:

a. Eine Aktualisierungsabfrage, die alle Datensätze aktualisiert:

Currentdb.execute "Update TabelleMitPreisen set [Kaufpreis-Brutto] =[Kaufpreis-Netto]*1.16, where isnull([Kaufpreis-Brutto])",dbfailonerror
(Hier darfst du keinen Standardwert auf dem Kaufpreis-Brutto haben)

b. Im Formular beim Steuerelement mit dem Netto-Preis im Ereignis Nach Aktualisierung
setzt du den Wert von Kaufpreis-Brutto auf Kaufpreis-Netto * 1.16

Viel Glück

Markus

Torasin
30.08.2001, 09:05
Zu allererst: Habt Dank. Dies sind zwar nur bescheidene Worte, aber zur Zeit bin ich nicht in der Lage meine Gefühle in Worte zu fassen und euch dreien den Respekt zu zollen, den ihr verdient.
Aber nun explizit zu MarcusR:
Zu 1.: Ist erst mal nicht so wichtig, an die Weil ich hier sowieso nur noch bis Dezember Arbeiten muss. Tangiert mich also Peripher.

Zu 2.: Das Nettofeld ist nicht gefüllt. Klar. Aber wäre es dann nicht so, dass beim ausrechnen wenigstens 0 herauskommen müsste?
(Vergib mir meine Unwissenheit, sollte dies eine dämliche Farge gewesen, aber ich nicht alles andere als ein Computer-Gott)

Wäre es dir vielleicht möglich diese Aktualisierungsabfrage etwas... äh ausfürlicher zu schreiben. Das wäre wirklich nett.

In ewiger Dankbarkeit Torasin(Eric)

Birgit Dannenberg
30.08.2001, 09:32
Hallo Eric,

mal so eine Idee:
vielleicht wäre es sinnvoll, den Mehrwertsteuersatz zu speichern, anstelle des Bruttowertes. Den kann man doch immer wieder neu berechnen.
Andernfalls kannst Du bei formulargesteuerter Datenerfassung den Bruttowert nach Eingabe vom Nettowert automatisch berechnen und speichern. Das ist besser als direkt in der Tabelle rumzufummeln.

Gruß Birgit

MarkusR
30.08.2001, 12:51
zu 2. NULL * 1.16 ist nicht 0 sondern NULL (nicht die Zahl null sondern NICHTS)

Für die Abfrage bräuchte ich nur den genauen Namen der Tabelle und die Namen der Felder.
Willst du den SQL mit einer Schaltfläche oder so ausführen oder direkt als Abfrage ausführen?

Gruß

Markus

Torasin
30.08.2001, 13:26
Hallo Markus,
also.. direkt als Abfrage, denke ich. Die Tabelle heißt: (Überraschung)"Tabelle1"
und die Felder "Netto", "Brutto".

Alles sehr einfallsreich, ich weis.

Gruß Eric

MarkusR
30.08.2001, 14:33
Update Tabelle1 set Brutto = Netto*1.16 where isnull(Brutto)

Wichtig: SQL nimmt nur "." als Kommazeichen

In VBA kannst du das z.B. über eine Schaltfläche mit

Currentdb.execute "Update Tabelle1 set Brutto = Netto*1.16 where isnull(Brutto)"

ausführen, falls er bei Fehlern meckern soll, kannst du noch

,dbFailOnError

hintendran setzen

Gruß

Markus

Torasin
30.08.2001, 14:44
Markus, ich danke von Herzen. Scheint nämlich zu funktionieren. Sollte ich hier noch weitere auf Probleme stoßen, die meinen bescheidenen Horizont übersteigen (wovon ich fast ausgehe), wende ich mich vertrauensvoll an dich. Sofern du nichts dagegen hast, versteht sich.

Gruß Eric