Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Seltsame Anzeige bei DCount

Begonnen von Beate1953, Oktober 26, 2013, 09:59:25

⏪ vorheriges - nächstes ⏩

Beate1953

Hallo,

ich habe im Berichtskopf ein Feld namens Erteilt in dessen Steuerelementinhalt nichts eingetragen ist. Die Datenbank läuft soweit einwandfrei.

Wenn ich nun im Ereignis Report_Open

  Me.Erteilt.ControlSource = DCount("*", "[E-Check]")

eingebe, kommt zur Laufzeit erst ein kleines Dialogfenster "Parameterwert Eingeben" mit der Anzeige "613" und einem Eingabefeld. Wenn ich hier irgendetwas eingebe (z.B.:bbbb) und O.K. drücke kommt die Anzeige "Nicht genügend freier Arbeitsspeicher zum Aktualisieren der Anzeige. Schließen Sie nicht benötigte Programme, und versuchen Sie es erneut."

Wenn ich dies mit O.K. bestätige zeigt Access den Bericht richtig an aber im Feld Erteilt steht bbbb.

Es kann sich nicht um ein wirkliches Arbeitsspeicherproblem handeln, da mein Arbeitsspeicher 4GB hat und die DB nur 3MB groß ist und keine weiteren Programme offen sind.


Wenn ich statt des DCount in der Entwurfsansicht in Steuerelementinhalt
      =DomAnzahl("*";"[E-Check]")
eingebe, macht Access es ohne Fehlermeldung richtig.

Woran liegt das? Darf ich der ControlSource  keinen DCount zuweisen?

Bin gespannt auf die Lösung des Rätsels

Viele Grüße
Beate1953

bahasu

#1
Hi,

mit controlsource soll ein Verweis auf ein anderes Steuerelement gegeben werden (und Du wirst wohl keines haben, dass die Bezeichnung "613" trägt).
Daher nur:  Me!Erteilt = DCount("*", "[E-Check]")

Harald
Servus

DF6GL

Hallo,

zusätzlich:

Wenn man die Controlsource "setzen" will, dann sollte der Ausdruck als String zugewiesen werden und folglich in diesem Fall so lauten:

Me!Erteilt.ControlSource =  "= DCount('*', '[E-Check]')"

Beate1953

Hallo,

also mit diesem Code klappt es prima:

   Me!Erteilt.ControlSource = "= DCount('*', '[E-Check]')"

Leider ist dies nur der Anfang eines längeren Ausdruckes, da noch eine Bedingung rein muss. Im "Original" lautet dies so:

=DCount("*";"[E-Check]","([E-Check] LIKE 'J*')  AND  [Datum] Between " & Format(Forms!FRMZeitraum!ADatum, "\#yyyy-mm-dd\#") & " AND " & Format(Forms!FRMZeitraum!EDatum, "\#yyyy-mm-dd\#") & ")"

Wenn jetzt vor dem = noch ein " rein muss, dann muss dieser Ausdruck umgeschrieben werden. Aber nur einfach Hochkommata und Anführungszeichen zu tauschen haut nicht hin. Ich scheitere schon bei dem 'J*' nach dem LIKE:  "=DCount('*', '[E-Check] LIKE ? ... )

Wenn ich statt des Fragezeichens ein Hochkomma mache, schließe ich die Bedingung. Mache ich Anführungsstriche, so schließe ich den ganzen Ausdruck. In beiden Fällen kriege ich eine Fehlermeldung.

Kann mir jemand verraten, wie es richtig heißen muss?

Vielen Dank im Voraus
Beate1953

DF6GL

Hallo,

dann setz halt den Wert und nicht   die Controlsource...:


Sub Report_Open()

Me!Erteilt = DCount("*","[E-Check]","([E-Check] LIKE 'J*')  AND  [Datum] Between " & Format(Forms!FRMZeitraum!ADatum, "\#yyyy-mm-dd\#") & " AND " & Format(Forms!FRMZeitraum!EDatum, "\#yyyy-mm-dd\#") & ")"

End Sub

(btw: Nicht  ";" und ","  durcheinander werfen..)

Beate1953

Hallo,

wenn ich

   Me!Erteilt = DCount(....etc

schreibe, kommt immer die Fehlermeldung: "Sie können diesem Objekt keinen Wert zuweisen."

   Me!Erteilt.ControlSource = "=DCount('*','[E-Check]')"  nimmt Access an, aber da kriege ich die Bedingung nicht hin -- Stringoperationen sind nicht meine Stärke. Vielleicht könnt Ihr mir da doch noch helfen?

Was nun?

Viele Grüße
Beate1953

DF6GL

Hallo,

was ist "Erteilt" denn?



Versuch mal, das Format-Ereignis des Bereiches zu nutzen, in dem das ungebundene Textfeld steht:

Private Sub Berichtsfuß_Format(Cancel As Integer, FormatCount As Integer)
Me!Erteilt = DCount("*","[E-Check]","([E-Check] LIKE 'J*')  AND  [Datum] Between " & Format(Forms!FRMZeitraum!ADatum, "\#yyyy-mm-dd\#") & " AND " & Format(Forms!FRMZeitraum!EDatum, "\#yyyy-mm-dd\#") & ")"
End Sub

Beate1953

Hallo,

ganz groooße Klasse, jetzt funktioniert es!!!

Vielen, vielen Dank.

Beate1953