Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Daten ins Formularblatt auslesen

Begonnen von wetman, Oktober 10, 2011, 17:30:14

⏪ vorheriges - nächstes ⏩

wetman

Hallo zusammen,

ich bin ein Access-Neuling und habe eine dringende Frage.

Ich habe nun eine umfangreiche Datenbank erstellt und möchte nun durch eine Eingabe in einem Formular (z.B. Eingabe "17" im Feld "Position) mir alle zur Pos. 17 hinterlegten Daten automatisch im Formularblatt anzeigen lassen.


Kann man sowas bei Access machen?
Wenn ja wie geht sowas?



Vielen Dank für Eure Hilfe!!!

DF6GL

#1
Hallo,


-- ja

-- etwa so, als Ereignisprozedur für das Ereignis "Nach Aktualisierung" des Suchfeldes:


Sub txtPos_Afterupdate()
Me.Filter ="Pos=" & Nz(Me!txtPos,0)
Me.FilterOn=true
End Sub


wobei:

"txtPos" das ungebundene Textfeld im Formular ist, in das die Pos-Nr einegeben wird
"Pos"  das Tabellenfeld ist, in dem die Pos-Nr drinsteht
das Formular an die entspr. Tabelle gebunden ist und die Datensätze anzeigt.

Die Datensätze werden gefiltert, nach eine Zahl in "txtPos" eingetragen wurde und der Cursor das Feld verläßt.

wetman

Oh, vielen Dank für die Antwort.
Ich versuch es Morgen mal (nur die Frage wo ich das einfügen muss?)

database

Hallo,

Zitatnur die Frage wo ich das einfügen muss

Du hast in deiner Anfrage von einem Formularfeld 'Position' gesprochen.
Im Formularentwurf wählst du dieses Feld aus, läßt dir die Eigenschften des Feldes anzeigen und gehst auf die Registerkarte 'Ereignisse'
Dort findest du ein Ereignis "Nach Aktualisierung" - so wie Franz es beschrieben hat.
Wähle nun aus dem Dropdown den Eintrag '[Ereignisprozedur]' aus und klicke danach auf die drei Punkte daneben.
Du befindest dich nun im VBA-Editor in der Ereignisprozedur 'Private Sub Position_AfterUpdate'

Unter der Voraussetzung dass das Feld tatsächlich 'Position' und das daran gebundene Tabellenfeld 'Pos' heißt kommt zwischen .... Private Sub ...   und ... End Sub

Me.Filter ="Pos=" & Nz(Me!Position,0)
Me.FilterOn=true


Gibst du nun eine Zahl in das Feld ein und beendest die Eingabe mit 'ENTER' oder mit 'TAB' aus dem Feld, wird diese Ereignisprozedur ausgeführt.
Vorausgesetzt, dass alle verwendeten Namen den realen Gegebenheiten entsprechen wird die Datenherkunft des Formulars auf den Eintrag im Feld 'Position'
gefiltert und die entsprechenden Daten in den Formularfeldern angezeigt.

HTH

wetman

Hallo zusammen,

vielen Dank für die hilfreichen Tipps!!!
Habe mich heute wieder mit der Thematik beschäftigt.

Nun holt er sich die Daten nicht über das Feld Positionen (im Fomular) ab, sondern über das Eingabefeld am unteren Fensterrand ab.
Dort existiert ein Eingabefeld neben der Anzeige der Anzahl der Datensätze bzw. wo gefiltert/ungefiltert steht.

Wenn ich an dieser Stelle nun z.B. 11 eingebe, holt er sich die Daten aus der Tabelle und fügt sie in das Formular ein.


Gebe ich jedoch in das Formularfeld "Position" eine Zahl ein welche schon in der Tabelle existiert, dann meckert er bzgl. Primärschlüssel, wird eine Zahl eingegeben die noch nicht in der Tabelle existiert, legt er diese dort an

?????

DF6GL

Hallo,


Zitatwobei:

"txtPos" das ungebundene Textfeld im Formular ist, in das die Pos-Nr einegeben wird


Das Suchfeld ("Position" ??) , in das die Positionnummer eingetragen wird, darf NICHT gebunden (mit dem Tabellenfeld "Pos" nicht in Verbindung stehen--> Steuerelementinhalt muss leer sein) sein...