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
ja, ich arbeite immer noch an dem Auto mit den viereckigen Rädern
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
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.
??? 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]
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:
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…
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?
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