Standardbefehle gehen in mit acDialog geöffnetem Formular nicht, was tun?!

18/05/2008 - 05:53 von Olaf Podendorf | Report spam
Geehrte NG,

folgendes Problem habe ich in meiner Access 2000 DB:

für die (komfortable) Eingabe/Suche von Fremdschlüsselwerten habe ich
mir folgende generische Suchfunktion geschrieben:

/**************************************************************************
Public Sub FormularSuche(frmName As String, boundedFieldName As String,
ctrl4Update As Control)
If Not DEF_TEST Then On Error GoTo Err_FormularSuche

DoCmd.OpenForm frmName, acNormal, , , acFormReadOnly, acDialog,
Suchmodus.EinfacheSuche

If (IsLoaded(frmName)) Then
ctrl4Update = Forms(frmName)(boundedFieldName)
DoCmd.Close acForm, frmName
End If

Exit_FormularSuche:

Exit Sub

Err_FormularSuche:

MsgBox Err.Description ' Fehler anzeigen

Resume Exit_FormularSuche

End Sub
**************************************************************************/

Die Implementierung erfordert, dass die Ausführung des Codes nach dem
Öffnen des Suchformulars solange unterbrochen wird, bis der Anwender
eine Entscheidung getroffen (sprich einen Datensatz ausgewàhlt) hat. Auf
dem Suchformular befindet sich ein Button, der das Suchformular auf
Visible == false schaltet. Wird dieser Button geklickt, kommt es zu den
zwei positiven und durchaus gewünschten Effekten, nàmlich..

- die Ausführung des Codes in der Suchfunktion wird wieder aufgenommen und
- da das Suchformular nur unsichtbar ist, kann der Code noch darauf
zugreifen und somit die Datensatzauswahl des Benutzers ermitteln.

Soweit so gut...

Nun das Dilemma...

Anscheinend stehen in einem per acDialog geöffneten Formular diverse
Standardbefehle nicht zur Verfügung. Besonders vermisse ich die Befehle
für Suchen und Filtern, welche in einem Suchformular richtig Spass
machen würden. Die Befehle zum Aufruf dieser Funktionen sind entweder
nicht da oder ausgegraut :-(

Auch per Code...
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer20
làsst sich die Standardsuche im per acDialog geöffneten Formular nicht
aufrufen. Bekomme Fehlermeldung ála "Befehl steht momentan nicht zur
Verfügung bla". Kennt jemand einen Grund, warum Access hier so rumzickt?

Ich habe auch bereits versucht, das Suchformular mit acWindowNormal zu
öffnen und die Modal-Eigenschaft im Suchformular auf TRUE gesetzt.
Leider führt dies nicht zu der gewünschten Unterbrechung des Codes.

Prinzipiell sehe ich zwei Ansàtze:
1. Man schafft es das Suchformular mit acWindowNormal zu öffnen und
TROTZDEM eine Codeunterbrechung zu erreichen, oder
2. Man schafft es im per acDialog geöffneten Suchformular zumindest den
Standardsuchendialog hochzureissen. Vielleicht gibt es da irgendwelche
API - Calls?

Vielen Dank für gute Gedanken und mit freundlichen Grüßen

Olaf Podendorf
___________________________________________________________________

Softwareentwicklung
Hamburg, Deutschland
Email: nix@podendorf.de
Web: www.podendorf.de
___________________________________________________________________
 

Lesen sie die antworten

#1 Josef Poetzl
18/05/2008 - 09:39 | Warnen spam
Hallo!

Olaf Podendorf schrieb:
[...]
Anscheinend stehen in einem per acDialog geöffneten Formular diverse
Standardbefehle nicht zur Verfügung.


[...]
Prinzipiell sehe ich zwei Ansàtze:
1. Man schafft es das Suchformular mit acWindowNormal zu öffnen und
TROTZDEM eine Codeunterbrechung zu erreichen, oder
2. Man schafft es im per acDialog geöffneten Suchformular zumindest den
Standardsuchendialog hochzureissen. Vielleicht gibt es da irgendwelche
API - Calls?



oder 3.
Man verzichtet auf Code-Unterbrechung innerhalb eine Prozedur und
splittet die Code-Ausführung in 2 Teile.

1. Teil: Aufruf des Suchformulars (diesmal nicht mit acDialog)
2. Teil: z.B. jener Code, der nach dem Schließen des Suchformulars
ablaufen soll

Teil 2 könnte z.B. als Reaktion auf das Close-Ereignis des
Suchformulars gestartet werden. (Ich würde mir aber ein eigenes Event
erstellen, das vom Suchformular ausgelöst wird und im anderen Formular
behandelt wird.)

mfg
Josef


EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/

Ähnliche fragen