Announcement

Collapse
No announcement yet.

Auf Bericht mittels VBA zugreifen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Auf Bericht mittels VBA zugreifen

    Hallo, ich habe folgendes Problem,

    ich habe einen Bericht, der tabellarisch aufgebaut ist.

    Bei diesem müssen bestimmte Felder wie durch bedingte Formatierungen beispielsweise Rot eingefärbt werden.

    Das Problem ist uzm einen, das die Anzahl der bedingten Formatierungen, die Access einem zur Verfügung stellt nicht ausreicht, als auch der Platz um die Vielzahl von Bedingungen die ich abfragen muss nicht in dass Wenn Feld passen.

    Aus diesem Grund wollte ich einfach ein Modul in VBA schreiben, beziehungsweise über cbf bei load/open des Berichts auf die verschiedenen Textfelder zugreifen um dann Programmintern meine Bedingungen abzufragen und dannach die entsprechende Formatierung veranlassen.

    Leider weiß ich nicht, wie ich an den Inhalt eines Textfeldes innerhalb des Berichts komme. Ist dies überhaupt möglich?

    Ich würde mich über jede Hilfe freuen.

    ps, ich hoffe das Thema gabs noch nicht (nichts zu VBA über die Suchfunktiuon gefunden)

  • #2
    Mini-Beispiel für die konditional Formatierung per VBA:
    [highlight=VB]Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    If Me.textboxWert.Value > 2 Then
    Me.textboxWert.ForeColor = vbRed
    Else
    Me.textboxWert.ForeColor = vbBlack
    End If
    End Sub
    [/highlight]

    vbRed/vbBlack sind dabei Konstanten für die Farbwerte.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Das klappt soweit leider nicht, da ich nicht auf den textboxwert.value komme!

      Genau das is ja das Problem.

      Ich vermute, das es daran liegt, das in dem Bericht, ja mehrmals diese Textbox vorhanden ist.

      --> Tabellarischer Bericht

      // EDIT ^^

      okay, habs nochmal angeschaut und gemerkt, das das Problem darin lag, das ich das bei Report_Open machen wollte, da aber noch nichts initialisiert ist.
      Vielen Dank für die Antwort, hat mir sehr geholfen!

      Comment


      • #4
        nicht auf den textboxwert.value komme
        ???
        Das ist der Name des Controls, den Du selbst vergibst; der ist auch eindeutig, von daher kannst Du immer die Textbox direkt ansprechen.
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Wie oben bereits gesagt, war mein Fehler, ich hab in der falsche Berichtsfunktion versucht auf die Values zu kommen.

          Und ich hatte scho verstanden, was du meintest, nur dachte ich halt wegen der Tabellarischen Berichtssache, wo ja das Textfeld mehrmals untereinander steht ...
          Bsp. vorname name (erster, zweiter und dritter Datensatz)
          vorname name
          vorname name
          das ich die irgendwie durchindizieren muss ... ich wusste nicht, das quasi das nacheinander für jeden Datensatz durchgeführt wird ...
          Ich hab während meiner derzeitigen Praxisphase zum ersten mal mit Access und VBA arbeiten müssen bin deshalb noch blutiger Anfänger

          Comment


          • #6
            Wenn man einen Bericht mittels Wizard + Option "Tabellarisch" anlegt, heisst das nur, das der Wizard die Controls nur so anordnet, das sie tabellarisch anordnet, also horizontal plaziert.
            Das ist aber weder eine fixe Einstellung geschweige den eine spezielle Ansicht; man kann die Controls nachher nach belieben plazieren ohne programm-technische etwas anpassen oder berücksichtigen zu müssen.
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X