Verweis

Hallo Experten,

vielleicht könntet ihr euch diesen Artikel mal anschauen… er ist da leider nicht im richtigen Brett, wie es mir scheint…

http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…

Danke und Gruß
Marco

Hai, Marco

Ich hatte mal eine Möglichkeit Felder so zu formatieren, dass
da Platzhalter für´s Datum drinstanden und ich das auswählen
konnte.
Das find ich z.B. nicht mehr.

Im Tabellen-Entwurfmodus; auf’s Feld mit dem Datum gehen und dann unten das Eingabeformat einstellen.

Dann will ich in der Formularansicht Feld a und b und c addiert
in Feld d ausgeben. Alle Felder kommen untereinander.

Äääähh - meinst Du, die stehen in unterschiedlichen Datensätzen? Dann musst Du sie in einer Abfrage irgendwie gruppieren (über einen gemeinsamen Wert oder über einen Bedingungsbereich)…

Wenn ich jetzt allerdings da Sum([Feld a]+[Feld b]+[Feld c])
eintrage, dann kommt als Ausgabe „#Name?“

…wenn ich mir aber Deine Formel da ansehe, hab’ ich den Verdacht, daß das die Ursache ist: Sum und + ist doppelt gemoppelt; schreib mal nur =[Feld a]+[Feld b]+[Feld c]

Weitere Frage: Wenn Feld b einen Wert hat, dann soll in Feld e
ein automatischer Wert geholt werden. Wie regel ich das am
besten?

Beim Öffnen des Formulars? Dann im Feld e Standardwert =[Feld b] eintragen. Oder, wenn es während der Benutzung des Formulars geändert wird, dann im Feld b NachAktualisierung mit 'nem VB-Fetzen versehen a’la
if Me![Feld b] „“ then
Me![Feld e] = wasauchimmerhierstehensoll
end if

Gibt es dafür vielleicht auch Beispieldatenbanken?

Nordwind.mdb ist bei Access immer dabei…

Ich hoffe, ich konnte Dir helfen
Gruß
Sibylle

Hallo Sibylle,

Im Tabellen-Entwurfmodus; auf’s Feld mit dem Datum gehen und
dann unten das Eingabeformat einstellen.

Okay… mit ein wenig Suche, habe ich es wieder gefunden :smile:

Achso… zur Info… ich nutze Access XP (oder 2000?) Jedenfalls Upgrade von Office2k auf XP.
Hat soweit auch ganz gut geklappt. In der Voransicht und im Test funktioniert es. Wenn ich jetzt allerdings eine Website mit dem Manager dazu erstelle, dann sind die Platzhalter nicht mehr vorhanden. :frowning: Wo oder wie kann ich das ändern?

…wenn ich mir aber Deine Formel da ansehe, hab’ ich den
Verdacht, daß das die Ursache ist: Sum und + ist doppelt
gemoppelt; schreib mal nur =[Feld a]+[Feld b]+[Feld c]

Das klappt auch in der Voransicht… zumindest schreibt er dort einen Wert 0 rein :smile: Und wenn ich in der Formularansicht alles eingebe, dann passt es auch, wenn ich Werte eingebe… also alles Paletti. Nur eben auch hier wieder keine Reaktion bei der Website.

Beim Öffnen des Formulars?

Nein…

Oder, wenn es während der Benutzung des
Formulars geändert wird, dann im Feld b NachAktualisierung mit
'nem VB-Fetzen versehen a’la
if Me![Feld b] „“ then
Me![Feld e] = wasauchimmerhierstehensoll
end if

Okay… und wie verschachtel ich das ganze dann?

Beispiel:

Wird in Zelle x der Wert auf 2 gesetzt, dann soll in Zelle y der Wert 55 stehen. Bei 3 in x kommt 45 in y, bei 4 in x kommt 45 in y. Zum Beispiel so. :smile:
Die Zelle x sollte wenn es geht nur eine feste Auswahl enthalten, die z.B. so funktioniert, dass ich rechts daneben auf ein Feld klicke und sich die möglichen Auswahlfelder aufblättern.
Geht das?

Dann eine Frage: Ich habe eine e-Mail Adresseingabe vorgesehen und würde dieses Feld gern prüfen lassen. Wie bewerkstellige ich das?
Zu guter Letzt… wie erzwinge ich in gewissen Feldern eine Eingabe, denn es muss gerechnet werden und dazu brauche ich eben Pflichteingaben.

Vielen Dank schonmal bis hier.

Gruß
Marco

Ergänzung
Hallo Sibylle,

und wie gestalte ich die If Then Anweisung (geht das hier?), wenn ich ausdrücken will, falls die Auswahl in dem Feld so, dann ist der Faktor maßgeblich, falls anders, dann der Faktor und falls ganz anders, dann jener Faktor.

Danke auch hierfür…

Gruß
Marco

'morjen, Marco,

Hat soweit auch ganz gut geklappt. In der Voransicht und im
Test funktioniert es. Wenn ich jetzt allerdings eine Website
mit dem Manager dazu erstelle, dann sind die Platzhalter nicht
mehr vorhanden. :frowning: Wo oder wie kann ich das ändern?

Äääähhh - sorry, aber was Access tut, um Webseiten zu erstellen, weiß ich nicht - vielleicht mal den Quell-Code checken und per Hand korrigieren…

Das klappt auch in der Voransicht… zumindest schreibt er
dort einen Wert 0 rein :smile: Und wenn ich in der Formularansicht
alles eingebe, dann passt es auch, wenn ich Werte eingebe…
also alles Paletti. Nur eben auch hier wieder keine Reaktion
bei der Website.

s.o.

Okay… und wie verschachtel ich das ganze dann?
Beispiel:
Wird in Zelle x der Wert auf 2 gesetzt, dann soll in Zelle y
der Wert 55 stehen. Bei 3 in x kommt 45 in y, bei 4 in x kommt
45 in y. Zum Beispiel so. :smile:
Die Zelle x sollte wenn es geht nur eine feste Auswahl
enthalten, die z.B. so funktioniert, dass ich rechts daneben
auf ein Feld klicke und sich die möglichen Auswahlfelder
aufblättern.
Geht das?

Klar, also: Du benutzt ein Kombinationsfeld für Feld x, da kannst Du dann eine Tabelle oder eine Werteliste als Datenquelle angeben, wenn Du dann noch die Eigenschaft „Nur Listeinträge“ dieses Kombinationsfeldes auf ja stellst, können eben nur Werte eingegeben bzw. ausgewählt werden, die in dieser Liste stehen.
Für Feld y: wo kommen denn die entsprechenden Werte her? Stehen die zufälligerweise in der gleichen Tabelle, wie die Werte für Feld x? Oder lassen sich in einer Abfrage eindeutig aus zwei Tabellen zusammenfügen? Dann reicht eventuell sogar ein Kombinationsfeld mit zwei Spalten, daß Dich nach einem Wert suchen/auswählen lässt und den anderen benutzt…

Dann eine Frage: Ich habe eine e-Mail Adresseingabe vorgesehen
und würde dieses Feld gern prüfen lassen. Wie bewerkstellige
ich das?

Auf was prüfen? Ob ein @ dazischen steht? Dann die Eigenschaft „NachAktualisierung“ mit Code versehen á la
if Me!NamedeseMailFeldes not like „*@*“ then
MsgBox „Ey, EMAIL eintragen, Du Hirsch!“
Me!NamedeseMailFeldes.SetFocus
end if
So überprüft die Kiste, ob in dem e-Mail-Feld „irgendwas @ irgendwas“ eingetragen wurde, wenn nicht, gibt’s 'ne Warnung und er springt wieder in das e-Mail-Feld…

Zu guter Letzt… wie erzwinge ich in gewissen Feldern eine
Eingabe, denn es muss gerechnet werden und dazu brauche ich
eben Pflichteingaben.

Wenn die Felder auf einer Tabelle basieren, dann einfach in der Entwurfsansicht der Tabelle bei den entsprechenden Feldern unten „Eingabe erforderlich“ auf Ja und „Leere Zeichenfolge“ auf Nein einstellen, ansonsten in der Entwurfansicht des Formulars auf das entsprechende Feld und bei den Eigenschaft „Gültigkeitsregel“ und „Gültigkeitsmeldung“ entsprechend einstellen oder eben mit Code-Schnipsel in der Eigenschaft „BeimVerlassen“

Vielen Dank schonmal bis hier.

Bitte
Gruß
Sibylle

1 Like

Hallo Sibylle,

Klar, also: Du benutzt ein Kombinationsfeld für Feld x, da
kannst Du dann eine Tabelle oder eine Werteliste als
Datenquelle angeben, wenn Du dann noch die Eigenschaft „Nur
Listeinträge“ dieses Kombinationsfeldes auf ja stellst, können
eben nur Werte eingegeben bzw. ausgewählt werden, die in
dieser Liste stehen.
Für Feld y: wo kommen denn die entsprechenden Werte her?
Stehen die zufälligerweise in der gleichen Tabelle, wie die
Werte für Feld x? Oder lassen sich in einer Abfrage eindeutig
aus zwei Tabellen zusammenfügen? Dann reicht eventuell sogar
ein Kombinationsfeld mit zwei Spalten, daß Dich nach einem
Wert suchen/auswählen lässt und den anderen benutzt…

Theoretisch können die in einer Tabelle oder in 2 Tabellen stehen.

Wie mache ich das am besten. Bedenke… ich bin das erste mal mit dieser Tabelle in Access beschäftigt :smile:

Problem ist: Wert x hat je Auswahl immer einen entsprechenden Wert für y.
Und wo kann ich so ein Kombinationsfeld einstellen? Kann ich einfach 2 zusätzliche Tabellen dann entwerfen?
Wie setze ich den Link (Verweis) auf eine andere Tabelle?

Auf was prüfen? Ob ein @ dazischen steht?

Ja…

Dann die Eigenschaft
„NachAktualisierung“ mit Code versehen á la
if Me!NamedeseMailFeldes not like „*@*“ then
MsgBox „Ey, EMAIL eintragen, Du Hirsch!“
Me!NamedeseMailFeldes.SetFocus
end if

Und das also was für ein Code? Makro? Oder wie? :smile:
Als Ausdruck oder Ereignisprozedur? :smile:

So überprüft die Kiste, ob in dem e-Mail-Feld „irgendwas @
irgendwas“ eingetragen wurde, wenn nicht, gibt’s 'ne Warnung
und er springt wieder in das e-Mail-Feld…

Also die Warnung kommt schon, aber nur, dass er die Prozedur nicht ausführen kann :smile:

Wenn die Felder auf einer Tabelle basieren,

Du meinst, die Werte irgendwoher kommen?
Okay… mal schaune, wie ich das realisiere :smile:

dann einfach in
der Entwurfsansicht der Tabelle bei den entsprechenden Feldern
unten „Eingabe erforderlich“ auf Ja und „Leere Zeichenfolge“
auf Nein einstellen, ansonsten in der Entwurfansicht des
Formulars auf das entsprechende Feld und bei den Eigenschaft
„Gültigkeitsregel“ und „Gültigkeitsmeldung“ entsprechend
einstellen oder eben mit Code-Schnipsel in der Eigenschaft
„BeimVerlassen“

Die z.B. aussehen könnte? :smile:

Du weißt, blutiger Anfänger … :smile:

Danke und Gruß
Marco

Hai…

und wie gestalte ich die If Then Anweisung (geht das hier?),
wenn ich ausdrücken will, falls die Auswahl in dem Feld so,
dann ist der Faktor maßgeblich, falls anders, dann der Faktor
und falls ganz anders, dann jener Faktor.

Wenn ich Dich hier richtig verstehe, bist Du mit einem Kombinationsfeld besser beraten…
(siehe Antwort auf das ander Posting)
Sibylle

1 Like

Hai, Marco,

Theoretisch können die in einer Tabelle oder in 2 Tabellen
stehen.
Wie mache ich das am besten. Bedenke… ich bin das erste mal
mit dieser Tabelle in Access beschäftigt :smile:

OK - also Dropje for Dropje: Du machst Dir eine Tabelle mit zwei Spalten für die Werte x und y…

Problem ist: Wert x hat je Auswahl immer einen entsprechenden
Wert für y.
Und wo kann ich so ein Kombinationsfeld einstellen? Kann ich
einfach 2 zusätzliche Tabellen dann entwerfen?

…dann öffnest Du Dein Formular in der Entwurfsansicht, klickst in der Toolbox auf Kombinationsfeld und dann in Dein Formular. Jetzt geht der Assistent auf und fragt Dich als erstes, ob denn das Feld die Werte aus einer Tabelle/Abfrage… *nick-soll er*, dann fragt er, aus welcher Tabelle/Abfrage *hihi - rate mal :wink:*, als nächstes fragt er nach den zu benutzenden Feldern *na, alle*, nu’ kannste die Breite für die zwei Spalten einstellen und dann suchst Du Dir noch das Feld aus, in dem der Wert steht, mit dem er weiterarbeiten soll (ich tipp da mal auf y), dann kannste dem Kind noch 'n Namen geben - und fettich.

Wie setze ich den Link (Verweis) auf eine andere Tabelle?

…hat sich schon erledigt, für ein schon vorhandenes Feld: Feld mit rechts anklicken, Eigenschaften wählen und dann unter dem Punkt „Datensatzherkunft“

Und das also was für ein Code? Makro? Oder wie? :smile:
Als Ausdruck oder Ereignisprozedur? :smile:

Ist 'ne Ereignisprozedur…

So überprüft die Kiste, ob in dem e-Mail-Feld „irgendwas @
irgendwas“ eingetragen wurde, wenn nicht, gibt’s 'ne Warnung
und er springt wieder in das e-Mail-Feld…

Also die Warnung kommt schon, aber nur, dass er die Prozedur
nicht ausführen kann :smile:

*rotwerd* da hab ich Dir doch glatt versucht, was Falsches beizubiegen…so geht das
If Not Me!Text2 „*@*“ Then
MsgBox „Ey, Hirsch“
Me!Text2.SetFocus
End If

und am einfachsten lässt sich das eintragen, wenn Du nicht den Pfeil an der Eigenschaft benutzt, sondern die Pünktchen daneben und dann „Code-Generator“
Ach, ja, Du solltest dieses Feld nicht unbedingt als letztes im Formular anordnen - das gibt nur unnötig Komplikationen, von wegen Sprung zum nächsten Datensatz…

dann einfach in
der Entwurfsansicht der Tabelle bei den entsprechenden Feldern
unten „Eingabe erforderlich“ auf Ja und „Leere Zeichenfolge“
auf Nein einstellen, ansonsten in der Entwurfansicht des
Formulars auf das entsprechende Feld und bei den Eigenschaft
„Gültigkeitsregel“ und „Gültigkeitsmeldung“ entsprechend
einstellen oder eben mit Code-Schnipsel in der Eigenschaft
„BeimVerlassen“

Die z.B. aussehen könnte? :smile:

Na, wieder Code-Generator und dann If Me!NamedesFeldes = „“ Then…

Du weißt, blutiger Anfänger … :smile:

…übrigens ist die Hilfe von Access nicht sooo schlecht…("…Es steht überhaupt alles im Buch, was ich sachh - nur nedde so schön…")

Wenn Du überhaupt nicht klarkommst, schick mir doch einfach den Kram, den Du schon hast, 'ne Beschreibung, was Du genau willst und ich bau Dir dann 'ne ordentliche Anleitung

Schönen Gruß
Sibylle

1 Like

Hallo Sibylle,

…hat sich schon erledigt, für ein schon vorhandenes Feld:
Feld mit rechts anklicken, Eigenschaften wählen und dann unter
dem Punkt „Datensatzherkunft“

So langsam blick ich es glaube :smile: Das mit den Kombinationsfeldern habe ich prinzipiell schonmal geschafft :smile:

*rotwerd* da hab ich Dir doch glatt versucht, was Falsches
beizubiegen…so geht das
If Not Me!Text2 „*@*“ Then
MsgBox „Ey, Hirsch“
Me!Text2.SetFocus
End If

Jetzt meckert er noch was rum, von wegen, dass er das Makro nicht findet.
Wenn ich ein Makro eingebe, dann muss ich aber irgendwas mit Sub eingeben… einfach dazwischen setzen?
*fragend guck*

Ach, ja, Du solltest dieses Feld nicht unbedingt als letztes
im Formular anordnen - das gibt nur unnötig Komplikationen,
von wegen Sprung zum nächsten Datensatz…

Ist gleich oben… Position 10 von ca. 30

Na, wieder Code-Generator und dann If Me!NamedesFeldes
= „“ Then…

nur es sind insgesamt 7 bedingungen. Bedeutet, wenn Auswahl 0 aus dem Kombinationsfeld dann Feld x…
Bisher habe ich es nur so, dass ich sie getrennt wählen kann… er sollte das andere dann aber automatisch einstellen :-/

…übrigens ist die Hilfe von Access nicht sooo
schlecht…("…Es steht überhaupt alles im Buch, was ich
sachh - nur nedde so schön…")

Die beim Programm?
Na gleich nochmal genauer inspizieren :smile:

Wenn Du überhaupt nicht klarkommst, schick mir doch einfach
den Kram, den Du schon hast, 'ne Beschreibung, was Du genau
willst und ich bau Dir dann 'ne ordentliche Anleitung

Okay… werde das gleich mal etwas abändern :smile:

Gruß und Danke Marco