PDA

Vollständige Version anzeigen : Unterformular aktualisieren


r_mori
20.01.2008, 21:24
Hallo zusammen
Habe hier im Forum bereits gesucht, aber nichts passendes zu meinem Problem gefunden.

Ich habe ein Formular gemacht mit einem Textfeld und einem Unterformular.
Nun kann ich ins Textfeld ein Suchkriterium eingeben. Mit einer Abfrage wird nach dem Kriterium gesucht und dann sollten die gefundenen Datensätze im Unterformular angezeigt werden. Das ganze möchte ich mit einem Button auslösen.
Da ich mit VBA noch nicht so ein Meister bin, habe ich mit den vorgegebenen Scripten hantiert. Per Knopfdruck öffnet sich nun die Abfrage, die auch richtig aktualisiert ist. Dann muss ich die Ansicht des Formulars wechseln und wieder zurück wechseln und dann steht das richtige im Unterformular.

Wie kann ich das nur mit einem Druck auf den Button machen?

Vielen Dank für die Hilfe

r_mori

ebs17
20.01.2008, 21:40
Etwa so:
Private Sub btnSuche_Click()
Me!UFOSteuerelement.Form.RecordSource = "SELECT ..." ' = Abfrage
End Sub

Deine vorgegebenen Scripte solltest Du mal überprüfen.

r_mori
20.01.2008, 21:54
... vielen Dank für die rasche Antwort.

Ich komme aber trotzdem nicht weiter, ich denke es ist fehlendes Wissen in Bezug auf VBA:

Meine Abfrage heiss: Katalog Abfrage
Mein Suchformular heisst: frm_Suchen
Mein Unterformular heisst: frm_Suchen_UFO

Wie müsste jetzt dein Codevorschlag aussehen? :(

ebs17
20.01.2008, 22:36
Wenn die Abfrage die Datenherkunft des Unterformulars liefert und die Schaltfläche btnSuche heißt und Steuerelement des Hauptformulars ist:
Private Sub btnSuche_Click()
Me!frm_Suchen_UFO.Form.RecordSource = "Katalog Abfrage"
End Sub

Eine präzisere Darstellung würde einige Wenns ersparen.

r_mori
21.01.2008, 07:14
... geht leider nicht so. Was bedeutet der Butten ist Steuerelement des Hauptformulars? Bei mir ist auf dem Button einfach das VBA Scriptchen.
Müsste da noch was anderes sein?

Grüssle r_mori

Louisleon
21.01.2008, 07:31
Dann muss ich die Ansicht des Formulars wechseln und wieder zurück wechseln und dann steht das richtige im Unterformular.

Ich vermute Dir fehlt nur noch ein "Requery".
Zeig mal den Code.

Gruß

LL

r_mori
21.01.2008, 07:47
... folgenden Code habe ich auf dem Butten. Der Butten ist auf dem Hauptformular:

Private Sub Befehl16_Click()
Me!frm_Suchen_UFO.Form.RecordSource = "Katalog Abfrage"
End Sub

Also genau so wie oben beschrieben.

r_mori

Louisleon
21.01.2008, 08:04
Hallo,

dann versuch mal das:
Private Sub Befehl16_Click()
Me!frm_Suchen_UFO.Form.RecordSource = "Katalog Abfrage"
Me!frm_Suchen_UFO.Requery
End Sub

SHeyer
21.01.2008, 08:05
Hallo r_mori,

baue in deinem Code noch folgendes ein:

Forms![deinHauptFormular]![deinUnterFormular].Requery

Gruß
Sören

r_mori
21.01.2008, 08:28
Ich habe jetzt meinen Code so ergänzt:

Private Sub Befehl16_Click()
Me!frm_Suchen_UFO.Form.RecordSource = "Katalog Abfrage"
Me!frm_Suchen_UFO.Requery
Forms![frm_Suchen]![frm_Suchen_UFO].Requery
End Sub

Leider geht immer noch nichts. Wechsle ich in den Entwurfsmodus und dann wieder zurück aktualisiert sich das Unterformular.

Vielen Dank für die Unterstützung

SHeyer
21.01.2008, 08:52
also laut deinem Code müsste es sich sogar zwei mal aktualisieren

Private Sub Befehl16_Click()
Me!frm_Suchen_UFO.Form.RecordSource = "Katalog Abfrage"
Me!frm_Suchen_UFO.Requery
Forms![frm_Suchen]![frm_Suchen_UFO].Requery
End Sub

eins von beiden hätte gereicht ;)

Aber da es trotzdem nicht funktioniert, probiere mal bitte statt ".requery" ".refresh"

r_mori
21.01.2008, 08:58
... geht leider auch nicht.

Was mache ich blos falsch?? :( :( :(

SHeyer
21.01.2008, 09:00
Könntest du vielleicht eine test-DB hochladen?

CptChaos
21.01.2008, 09:16
ist frm_Suche_UFO der Name des Formulars oder des Objekts im Formular frm_Suchen?

Hier muss der Steuerelementname des UFO-Objekts und nicht der tatsächliche Name des Formulars verwendet werden.

gpswanderer
21.01.2008, 09:20
Hallo,
Infos wie "Geht nicht", "Geht leider auch nicht" helfen da nicht wirklich weiter. Ich denke da stimmt der Bezug auf das Ufo nicht.

Das wäre der vollständige Bezug:

Forms!NameDesHauptformulars!NameDesUfos.Form.Requery

Dabei ist aber zu beachten:
Der Name des Hauptformulars steht im Datenbankfenster
Den Namen des Ufos findest Du in den Eigenschaften wenn Du den Rahmen des Ufos anklickst. Der kann (muss aber nicht) unterschiedlich zum Namen im Datenbankfenster sein.



Gibt es eigentlich eine Fehlermeldung?

r_mori
21.01.2008, 12:46
Hallo CptChaos
... dein Hinweis hat genau ins Schwarze getroffen. Ich habe das Unterformular im Nachhinein umbenannt. In den Eigenschaften habe ich nun den alten Namen gefunden. Jetzt funktioniert meine Abfrage mit Unterformular bestens. Vielen Dank an alle, die mir geholfen haben. Es ist eine tolle Sache, so ein Forum!!!!

Gruss r_mori :)