PDA

Vollständige Version anzeigen : Auflistung von Steuerelementen in geschlossenen Forms


Kamel1
02.10.2002, 08:37
Hallo Fans!

Ich suche nach einer Möglichkeit Steuerelemente von geschlossenen Formularen aufzulisten bzw. an eine Variable zu übergeben.

Kennt jemand eine Möglichkeit, dies zu realisieren, ohne jedes einzelne Form im Entwurfsmodus öffnen zu müssen.

Die forms- bzw. controls-Auflistung funktioniert mangels geöffnetem Form nicht.

mfg

Kamel

MarkusR
02.10.2002, 10:03
man kann ein Form auch im Entwurfsmodus via VBA
öffnen:

dim frm as form
dim ctl as control

docmd.openform "abc",acDesign

set frm = application.forms("abc")
for each ctl in frm.controls
debug.print ctl.name
next
docmd.Close acForm,"abc"

Falls du etwas über alle Forms machen mußt,
kannst du die Formulare über
currentdb.Containers("forms").Documents...
ermitteln

Viel Glück

Markus

Kamel1
02.10.2002, 10:57
Hallo Markus!

Erst einmal Danke für Deine Antwort!

Das Verfahren welches Du beschreibst ist mir bekannt; ich wollte ja gerade das Bearbeiten des Forms im Entwurfsmodus vermeiden egal ob nun per VBA oder manuell.

Interessanter ist für mich der zweite Teil Deiner Antwort. Hierzu noch ne Frage:

Ist es möglich, die folgende Anweisung auch bei geschlossenen Forms anzuwenden?

"currentdb.Containers("forms").Documents..."

Kannst Du mir die Syntax bzw. ein kleines Beispiel ausführlicher beschreiben? Meine OH ist defekt und streikt dann, wenn ich Auskünfte über das Container-Objekt und dessen Methoden erhalten möchte.

Das Kamel dankt im voraus !

MarkusR
02.10.2002, 11:14
Da gibts keine Methoden und nur ein paar
Eigenschaften. Container und Document beziehen
sich nicht auf den Inhalt, sondern nur auf
Verwaltungsinfos (z.B. Berechtigungen).

Um auf die Controls zuzugreifen mußt du auf
jeden-Fall über das Form-Objekt gehen.

Beispiele aus der Online-Hilfe:
---------------------------------------------
Dieses Beispiel durchläuft die Containers-Auflistung der Nordwind-Datenbank und die Properties-Auflistung jedes Container-Objekts in der Auflistung.

Sub ContainerObjectX()

Dim dbsNorthwind As Database
Dim ctrLoop As Container
Dim prpLoop As Property

Set dbsNorthwind = OpenDatabase("Nordwind.mdb")

With dbsNorthwind

' Durchlaufen der Containers-Auflistung.
For Each ctrLoop In .Containers
Debug.Print "Eigenschaften von" & ctrLoop.Name _
& " Container"

' Durchlaufen der Properties-Auflistung jedes
' Container-Objekts.
For Each prpLoop In ctrLoop.Properties

Debug.Print " " & prpLoop.Name _
& " = " prpLoop
Next prpLoop

Next ctrLoop

.Close
End With

End Sub
-----------------------------------------------
In diesem Beispiel wird erst die Documents-Auflistung des Tables-Containers und dann die Properties-Auflistung des ersten Document-Objektes in der Auflistung durchlaufen.

Sub DocumentX()

Dim dbsNorthwind As Database
Dim docLoop As Document
Dim prpLoop As Property

Set dbsNorthwind = OpenDatabase("Nordwind.mdb")

With dbsNorthwind.Containers!Tables
Debug.Print "Dokumente in " & .Name & _
"-Container"
' Documents-Auflistung des Tables-
' Containers durchlaufen.
For Each docLoop In .Documents
Debug.Print " " & docLoop.Name
Next docLoop
With .Documents(0)

' Properties-Auflistung des ersten Document-
' Objekts des Tables-Containers durchlaufen.
Debug.Print "Eigenschaft des " & .Name & _
"-Dokuments"
On Error Resume Next
For Each prpLoop In .Properties
Debug.Print " " & prpLoop.Name & _
" = " & prpLoop
Next prpLoop
On Error GoTo 0
End With
End With

dbsNorthwind.Close

End Sub

Kamel1
02.10.2002, 14:35
Danke nochmals für Deine Bemühungen!

Ich probiere es später aus und berichte dann

mfg

Kamel