Feldname erzeugt durch einen String macht Probleme

Hallo,

ich habe in meinem Bericht viele Feldnamen, die ich mit Schleifen generiere um sie auszufüllen sowie sichtbar und unsichtbar zu machen.
Dazu nutze ich folgende Syntax:

z.B.
For Feld = 1 To 10
Bezeichnung1 = „Text“ & Feld
Bezeichnung2 = „Stückzahl“ & Feld
Me(Bezeichnung1) = DSum(Bezeichnung2, „Artikelabfrage“)
Next Feld

Hierbei gibt es kein Problem, da DSum die Feldenamen so akzeptiert. Nun möchte ich aber in ein Feld einen berechneten Wert eintragen:

For Feld = 1 To 10
Bezeichnung1 = „Text“ & Feld
Bezeichnung2 = „Stückzahl“ & Feld * 1000
Me(Bezeichnung1) = Bezeichnung2
’ Me!Text1 = Bezeichnung2
Next Feld

Dies klappt so nicht?! Nur die Zeile die ich auskommentiert habe funktioniert. Hat jemand eine Idee?
Dank im Voraus,
Thomas

Hallo,

willst Du immer noch viereckige Räder an Dein Auto montieren und damit fahren ?

Nun möchte ich aber in ein Feld einen berechneten

Wert eintragen:

??? Welches Feld? Welche Berechnung?

For Feld = 1 To 10
Bezeichnung1 = „Text“ & Feld
Bezeichnung2 = „Stückzahl“ & Feld * 1000
Me(Bezeichnung1) = Bezeichnung2
’ Me!Text1 = Bezeichnung2
Next Feld

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

PS: vielleicht sowas:

For Feld = 1 To 10
Me(„Text“ & Feld) = Me(„Stückzahl“ & Feld) * 1000
Next Feld

Hallo,

ja, ich arbeite immer noch an dem Auto mit den viereckigen Rädern :wink:
weil ich soviel Zeit investiert habe und nun nur noch ein paar Kleinigkeiten fehlen…ich hoffe du kannst mich da verstehen…

So wie dein Beispiel soll es funktionieren, aber ich bekomme eine
Fehlermeldung die besagt, das ich diesem Objekt keinen Wert zuweisen kann. Habe es gerade mal getestet…

PS: vielleicht sowas:

For Feld = 1 To 10
Me(„Text“ & Feld) = Me(„Stückzahl“ & Feld) * 1000
Next Feld

Hallo,

Fehlermeldung die besagt, das ich diesem Objekt keinen Wert
zuweisen kann.

vermutlich ist das Textfeld an einen Ausdruck gebunden (Steuerelementinhalt nicht leer oder kein Feldname aus der Tabelle/Abfrage in der Datenherkunft.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hatte ich auch schon vermutet, aber selbst einen einfachen Wert z.B. die Zahl „1000“ kann ich so nicht ins Textfeld eintragen:

For Feld = 1 To 10
Bezeichnung1 = „Text“ & Feld
Me(Bezeichnung1) = 1000
’ Me!Text1 = 1000 —> mit der Zeile ohne Problem
Next Feld

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hatte ich auch schon vermutet, aber selbst einen einfachen
Wert z.B. die Zahl „1000“ kann ich so nicht ins Textfeld
eintragen:

Du kannst ÜBERHAUPT KEINEN Wert zuweisen, wenn das Textfeld an einen Ausdruck gebunden ist…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

??? die Zuweisung funktioniert doch, da das Textfeld ungebunden ist…habe doch auf dem normalen Wege Erfolg:

z.B. Me!TextA1 = 1000

Es geht lediglich nicht, wenn ich den Namen des Textfeldes per
Schleife generiere um so die 10 Felder mit einer Codezeile auszufüllen. Deshalb vermute ich einen Syntaxfehler in der Zeile:

Me(„Text“ & Feld) = 1000

Dank im Voraus,
Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Deshalb vermute ich einen Syntaxfehler in der
Zeile:

Me(„Text“ & Feld) = 1000

nein, da ist kein Syntaxfehler, höchsten ein Logikfehler, z. B. wenn das entspr. Textfeld gar nicht existiert.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Das dachte ich auch erst, aber wenn ich z.B. beide Zeilen hintereinander schreibe, führt er die erste aus und bei der zweiten
kommt die Fehlermeldung?!

Me!Text1 = 1000
Me(„Text“ & Feld) = 1000

So als ob der String nicht als Feldname erkannt wird?!
Dagegen funktioniert folgende Syntax:

Bezeichnung1 = „Text“ & Feld
Me(Bezeichnung1) = DSum(Stückzahl, „Artikelabfrage“)

Ich versteh’s nicht :frowning:
Grüße, Thomas

Hallo,

setz mal einen Haltepunkt an diese Zeile und prüf den Inhalt der Variablen „Feld“:

Me(„Text“ & Feld) = 1000

WIE ist „Feld“ denn deklariert?

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

das war der richtige Tipp, durch den Haltepunkt und das Auslesen der
Variable habe ich festgestellt, dass nicht mein FeldA1 den Fehler verursacht hat, sondern ein FeldA3 was nicht „ungebunden“ war…
Ich bin immer vom ersten Feld ausgegangen und dachte die Syntax paßt nicht.

Danke!!!
Eine Frage hätte ich noch:

Wie kann ich Variablen, die ich auch durch eine Schleife aufrufe zusammenrechnen?
z.B.
For i=1 to 20
Me(„Feldname“ & i) = „Stückzahl“ & i * 1000
Next i

In diesem Beispiel möchte ich in die vorhandenen Felder Werte eintragen die aus den vorhandenen Stückzahlen von 1-20 berechnet
werden. Das was hinter dem „=“ steht klappt so nicht…
Problem hier ist sicher die Verknüpfung von String und Integer…

Danke im Voraus
Thomas

Hallo,

Wie kann ich Variablen, die ich auch durch eine Schleife
aufrufe zusammenrechnen?

z.B.

For i=1 to 20
Me(„Feldname“ & i) = Me(„Stückzahl“ & i) * 1000
Next i

wobei ich immer mehr den Verdacht habe, daß Du die Sachlage nicht im Griff hast, bzw. Phantomen nachjagst und durch Tricksereien „Excel-Denkweisen“ in Access realisieren willst.

Was außer Frust bringt denn oben st. Code für eine DB-Anwendung?

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

habe das Problem mit „Controls“ gelöst:

Me(„Feld“ & i) = Controls(„TStückzahl“ & i) * 1000

und nun läuft endlich alles, ich mußte es so machen, weil die Vorgaben
genau definiert waren und Excel nicht verwendet werden darf. Hätte es auch gern anders und einfacher gemacht.
Danke für deine Hilfe und deine Geduld :smile:

Schöne Grüße,
Thomas

Hallo,

das muß ich jetzt aber nicht verstehen??

Me(„Feld“ & i) = Controls(„TStückzahl“ & i) * 1000

ist (unsauber) identisch mit

Me(„Feld“ & i) = Me(„TStückzahl“ & i) * 1000

weil ausgeschrieben:

Me.Controls.Item(„Feld“ & i).Value = Me.Controls.Item(„TStückzahl“ & i).Value * 1000

und mit Excel hat es auch nichts zu tun… :wink:

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!