PDA

Vollständige Version anzeigen : Forms! fehler hilfe bitte


VBA!Forms!Help
10.07.2006, 10:12
hallo

ich habe ein problem

hier erstmal der code

Dim frm As Form
Dim z As Integer
Dim ary(1000) As String

Set frm = Forms! hier soll eine variable hin

For z = 0 To frm.Controls.Count - 1
ary(z) = frm.Controls(z).Name
MsgBox ary(z)
Next z

oben wo steht "hier soll eine variable hin"

da soll wie der name schon sagt eine var hin.
diese wird von einem formular dort hin übertragen.

wenn ich an die stelle wo die var hin soll einen formularnamen eintrage geht es
aber da es dyn werden soll muss es über var gehen.
nur ich bekomme immer fehler dies bzgl.


könnt ihr mir helfen ???

danke schon mal.

byebye

Worf1001
10.07.2006, 10:21
Hallo,

Was soll den dort stehen? Eine Variable kann dort nicht stehen. Denn mit Set willst Du ja schon einer Variablen ein Objekt zuweisen. Was willst Du genau machen?

VBA!Forms!Help
10.07.2006, 10:33
Hallo,

in einem formular davor ist eine kombobox enthalten, die automatisch alle formularnamen enthält, diese sollen an den oben aufgelisteten code übergeben werden.
und automatisch nach objektnamen überprüft werden.
das funktioniert alle ganz gut wenn ich den formularnamen vorgebe.
aber sobald ich es über eine variable realisieren will bekomme ich den laufzeitfehler 2450


wie gehts weiter??

Worf1001
10.07.2006, 10:38
Mache folgendes:


Dim WertKombi As String
Dim strForm As String

WertKombi = Me!Kombinationsfeld.Column(1)
strForm = "Forms!" & WertKombi

Set frm = strForm


Probiere mal, vielleicht funktioniert das so...

Anne Berg
10.07.2006, 11:52
Du musst den Namen des Formulars schon kennen, das du da ansprechen willst - und geöffnet muss es auch sein! - dann kannst du folgenden Befehl einsetzen:

Set frm = Forms(strFormName)

VBA!Forms!Help
10.07.2006, 12:05
hi,

der letzte code funktioniert bei mir nicht zumindest bekomm ich ihn nich zum laufen.

....
^^ gg

Anne Berg
10.07.2006, 12:08
Dann erzähl doch mal, wie du an den Formularnamen kommen möchtest.


PS: eine konkrete Fehlermeldung wäre auch hilfreich... dann könnte man vielleicht erahnen, welcher Art deine Versuche waren. :rolleyes:

Smaug
10.07.2006, 12:29
am besten mit 2 Prozeduren:
1. Übergabe des Formularnamens aus dem Kombifeld an Deine Proc aus #1:
ArrayFuellen Me!Kombifeld.column(Nr der Spalte in dem die Formularnamen stehen)
2. Die eigentliche Proc:
...
Public Sub FuelleArray (sFormName as String) 'hier kommt der Wert des Kombifeldes an
...
Set f = Forms(sFormName)
...

Worf1001
10.07.2006, 12:51
oder so:


Dim frm As Form
Dim strKombi As String
Dim z As Integer
Dim ary(1000) As String

strKombi = Me!Kombinationsfeld.Column(x) 'je nach Spaltenanzahl und Spalte (vielleicht 0 oder 1)

Set frm = Forms(strKombi)

For z = 0 To frm.Controls.Count - 1
ary(z) = frm.Controls(z).Name
MsgBox ary(z)
Next z


Sorry Post #4 von mir war ja wirklich :stupid:

VBA!Forms!Help
10.07.2006, 13:58
hallo


danek für die messages dank Eurer ilfe haben wir es nun hinbekommen.



D A N K E