Ich habe eine Textfeld Namens „Region“.
Dessen Inhalt (Regionskürzel) im Endlosformular wird regelmäßig auf Grund einer Suche geändert.
Nun möchte ich zu diesem Inhalt in einem ungebundenen Textfeld eine zur Region feststehende Referenznummer via If-Bedingung anzeigen.
Das ungebundene Textfeld heisst „RegionNummer“. Im Ereignis „Vor Aktualisierung“ habe ich folgende Ereignisprozedur eingefügt.
Private Sub RegionNummer\_BeforeUpdate(Cancel As Integer)
If Region = NDS Then
RegionNummer = 01
ElseIf Region = MDS Then
RegionNummer = 02
ElseIf Region = ODS Then
RegionNummer = 03
.
.
.
End If
End Sub
Leider passiert nichts
Was mache ich falsch und was muss ich ändern?
Alternativ habe ich im Steuerelementeinhalt von RegionNummer folgendes eingegeben:
Das ungebundene Textfeld heisst „RegionNummer“. Im Ereignis
„Vor Aktualisierung“ habe ich folgende Ereignisprozedur
eingefügt.
falscher Zeitpunkt!
nutze das Ereignis: bei Fokusverlust
des Feldes Region
Private Sub RegionNummer_BeforeUpdate(Cancel As Integer)
If Region = NDS Then
RegionNummer = 01
ElseIf Region = MDS Then
RegionNummer = 02
ElseIf Region = ODS Then
RegionNummer = 03
.
.
.
End If
füge dann noch hinzu:
Me.RegionNummer.Requery '= Feld Anzeige aktualisieren
End Sub
BTW: ich würde ein Kombifeld für Region nutzen. In der Tabelle wären dann die Regionen mit Kennzahlen gespeichert.
Du müsstest nur noch die zweite Spalte an RegionNummer übergeben.
If me.Region = „NDS“ Then
me.RegionNummer = „01“
ElseIf me.Region = „MDS“ Then
me.RegionNummer = „02“
ElseIf Region = „ODS“ Then
me.RegionNummer = „03“
end if
das kann nicht sein, es sei denn, du hast da noch anderen Code
laufen!?
Ja, im Formularkopf sind ungebundene Textfelder mit Code zum Suchen versehen.
In den Feldern suche ich, die lösen ein Abfrage aus die im Detailbereich als Endlosformular eingegeben werden.
Aber es passiert wirklich nichts, wenn ich so vorgehe wie beschrieben.
ich habe leider keine Schreibrechte für die Tabelle.
dann mach dir eine Kopie der Region-Tabelle STRG+C und STRG+V
für dein Kombifeld.
Die Abfrage bezieht sich auf eine riesige Tabelle, die ich immer morgens in meine DB exportiere und jedes Mal um einiges manuell ergänze. Ich glaube bei weiteren manuellen Ergänzungen wird aus dem Fortschritt wieder ein Rückschritt
Aber es passiert wirklich nichts, wenn ich so vorgehe wie
beschrieben.
Ich glaube das fehlen noch einige Informationen?
Hoffe, dass ich es richtig verstanden habe:
Im Formularkopf gibt es zwei ungebundene Felder:
Region
Regionnummer
Beim Feld Region steht im Event (bei Fokusverlußt) der von mir vorgeschlagene Code?
Wenn das Feld Region verlassen wird, wird das Feld Regionnummer nicht aktualisiert? Egal welchen Regioncode du eingibst?
Die Abfrage bezieht sich auf eine riesige Tabelle, die ich
immer morgens in meine DB exportiere und jedes Mal um einiges
manuell ergänze. Ich glaube bei weiteren manuellen Ergänzungen
wird aus dem Fortschritt wieder ein Rückschritt
ich glaube wir reden aneinander vorbei?
erstelle eine neue Tabelle REGIONCODE
mit den Feldern REGION und REGIONNUMMER
erstelle ein Kombifeld zur Auswahl
als Datenbasis verwendest du die Tabelle REGIONCODE
ggf. schaltest du eine Abfrage zur Sortierung dazwischen
Falls gewünscht und/oder möglich, schick mal die MDB rüber, ich schau dann mal drüber.
schlampige/falsche Verwendung von Literalen und fehlene Referenzierung auf das akt Form(objekt):
If Me! Region = „NDS“ Then
Me!RegionNummer = "01"
ElseIf Me!Region = „MDS“ Then
Me!RegionNummer = „02“
ElseIf Region = „ODS“ Then
Me!RegionNummer = „03“
.
.
.
End If
Knackpunkt 2 ist:
solche „magic numbers“ codiert man nicht hart, sondern holt die Werte aus einer Tabelle. ( z. B. wie angesprochen mittels Kombifeld)
Knackpunkt 3 ist:
falsches Ereignis. Dieses tritt nur auf, wenn tatsächlich etwas im Feld „RegionNummer“ geändert wird. Damit wird aber der Code in seiner Bedeutung (soll heißen, das was passieren soll) ad adsurdum geführt.
Die Abfrage ‚abfr_deckblatt_seriendruck‘ trifft eine Auswahlabfrage aus der Tabelle ‚Mitglieder‘.
Im Formularkopf wird gesucht mit
Me.Filter = „[ORT] Like '“ & strOrt & „’ And [PLZ] Like '“ & strPlz & „’“
Me.FilterOn = True
Im Detailbereich des Endlosformulars werden die gefundenen Datensätze komplett angezeigt.
Unter anderem ein Textfeld mit dem Steuerelementeinhalt ‚Region‘.
Zu dieser ‚Region‘ möchte ich eine korrespondierende Nummer anzeigen lassen.
Mittlerweile habe ich eine zweite Tabelle erstellt, sie heisst ‚RegionNummern‘ und hat die Felder ‚Region‘ und ‚VZNummer‘.
Genau dies ‚VZNummer‘ möchte ich mir anzeigen lassen.
Also, ich habe jetzt zwei Tabellen ‚Mitglieder‘ und ‚RegionNummern‘.
In beiden Tabellen existiert das Feld ‚Region‘.
Das Formular, in dem die Daten angezeigt werden sollen, greift auf die Abfrage ‚abfr_seriendruck‘. Diese Abfrage ist an die Tabelle ‚Mitglieder‘ gebunden.
Ich habe nun in mein Formular ein Kombinationsfeld eingefügt. Es heisst ‚VZN‘.
Bei Steuerelementeinhalt steht nichts.
Bei Datensatzherkunft steht:
SELECT RegionNummern.VZNummer FROM RegionNummern WHERE (((Mitglieder.Region)=(RegionNummern.Region)));
Leider wird immer nur die gleiche VZNummer für alle Regionen angezeigt und das auch nur, weil ich im Kombinationsfeld bei aktiviert Ja angeklickt habe und ich dann auf den Pfeil klicke, damit mir die eine VZNummer angezeigt wird, die wie geschrieben leider für alle Regionen identisch ist.
Ich habe nun in mein Formular ein Kombinationsfeld eingefügt.
Es heisst ‚VZN‘.
davon habe ich nichts geschrieben, es ist überflüssig!
Bei Steuerelementeinhalt steht nichts.
Bei Datensatzherkunft steht:
SELECT RegionNummern.VZNummer FROM RegionNummern WHERE
(((Mitglieder.Region)=(RegionNummern.Region)));
falsch, das kann in einem Endlosformular nicht funktionieren.
Leider wird immer nur die gleiche VZNummer für alle Regionen
angezeigt und das auch nur, weil ich im Kombinationsfeld bei
aktiviert Ja angeklickt habe und ich dann auf den Pfeil
klicke, damit mir die eine VZNummer angezeigt wird, die wie
geschrieben leider für alle Regionen identisch ist.
logisch, es fehlt der Bezug zur aktuellen Region. Es wird immer das oberste Element ausgewertet, aber dann für alle Zeilen, weil ja in jeder Zeile das Feld VZN und und REGION vorkommt.
Was habe ich übersehen oder falsch gemacht?
komm doch mal von deinem Holzweg runter und tue doch einfach mal was ich dir hier aufschreibe, Schritt für Schritt und schau dir dann das Ergebnis an.
du bist auf dem Holzweg, und kommst aus deiner Denkschleife
nicht heraus. Du benötigst KEIN zusätzliches Feld VZN!!
bin vom Holzweg abgekommen es wird die korrespondierende Nummer angezeigt.
Klappt prima!!
Danke schön
Um jetzt aber nicht auf’s Glatteis zu kommen:
Ich habe erneut ein Feld ‚Region‘ eingefügt, dass ursprüngliche wieder, damit weiterhin der Name der Region angezeigt wird.
Ich hoffe, man hätte das nicht auch schon mit Deinem Lösungsvorschlag machen können.
Nun noch eine kleine Design Frage:
Kann man den unschönen Pfeil irgendwie entfernen?
… ich habe nur links und rechts gefunden
du bist auf dem Holzweg, und kommst aus deiner Denkschleife
nicht heraus. Du benötigst KEIN zusätzliches Feld REGION!
bin vom Holzweg abgekommen
scheint mir nicht so!?
es wird die korrespondierende Nummer angezeigt.
es sollte BEIDES die Region UND Nummer angezeigt werden!!
Ziehe das Feld mal etwas weiter auf= vergrößer das Feld nach Rechts.
Klappt prima!!
Danke schön
freut mich ein wenig
Um jetzt aber nicht auf’s Glatteis zu kommen:
Ich habe erneut ein Feld ‚Region‘ eingefügt, dass
ursprüngliche wieder, damit weiterhin der Name der Region
angezeigt wird.
also DOCH der Holzweg
Ich hoffe, man hätte das nicht auch schon mit Deinem
Lösungsvorschlag machen können.
doch, so war es eigentlich angedacht, und wenn du es genau so wie ich es dir beschrieben habe gemacht hast, solltest du beides im „alten“ Feld Region sehen.
Nun noch eine kleine Design Frage:
Kann man den unschönen Pfeil irgendwie entfernen?
… ich habe nur links und rechts gefunden
überdecke den Pfeil einfach mit einem Rechteck dessen Hintergrund du in der entsprechenden Farbe färbst.