Neuigkeiten:

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

Mobiles Hauptmenü

formularbedingter Bericht?

Begonnen von hijack61, September 08, 2010, 21:42:21

⏪ vorheriges - nächstes ⏩

hijack61

Hallo, habe das naechste problem.
Folgender Fall: Formular zur Eingabe der Daten fuer Rechnungsausdruck, (hier in der dom.Rep gibts eine sogenannte NCF nummer, mit der du deine steuer abrechnest, musst du bei jedem beleg oder Rechnung draufschreiben.  >>>>>jetzt kommts: >>>>>>oder auch nicht) ich moechte keine 2 verschiedene Rechnungsberichte machen, also moechte ich gerne das die nummer in einem Fall aufscheint und im anderen nicht. kann ich dieses Feld im bericht vom formular aus beeinflussen. habe bereits ein ja/nein feld eingefuegt im formular. so auf die art:  wenn feld xy = ja, dann sichtbar ist ja, und umgekehrt???danke

Dorian

Zitat von: hijack61 am September 08, 2010, 21:42:21
Hallo, habe das naechste problem.

Du solltest den Tip von Franz beherzigen und zuerst einmal Deine Tabellen normalisieren. Du kannst die Tabellen auch hier hochladen ( ohne Daten) und Dir helfen lassen. Sonst werden Deine Probleme immer mehr.

Zitat von: hijack61 am September 08, 2010, 21:42:21
Formular zur Eingabe der Daten fuer Rechnungsausdruck...

Die Daten werden mit Hilfe eines Formulares in Tabellen eingegeben. Anschließend können mit einer Abfrage die entsprechenden Daten aus den Tabellen in einem Bericht dargestellt werden.

Zitat von: hijack61 am September 08, 2010, 21:42:21
habe bereits ein ja/nein feld eingefuegt im formular. so auf die art:  wenn feld xy = ja, dann sichtbar ist ja, und umgekehrt???danke

Sollte das nötig sein, gehört das Feld in eine Tabelle.


Dorian

hijack61

Danke Dorian, werde die datei hochladen heute abend, bin gerade am bueffeln. mein problem ist das ich das program vor ort fertigschreibe, mein computer 200 km entfernt ist, und ich hier den ganzen tag 2 leute am diskutieren in einem 12m2 grossem Buero habe, also konzentration ein wenig nachlaesst. Alle 2 Stunden kommt irgendeine neue idee von einem der 2 und ich muss wieder aendern. Ich habe alle links gespeichert bzw. aufgemacht und den text gespeichert, da ich bei mir nur wenig moeglichkeiten fuer internet habe. gebueffelt wird dann zuhause.
ja, das feld habe ich zuerst in der tabelle angelegt und dann im formularentwurf mit felder zufuegen eingefuegt.
nur die prinzipielle frage bleibt offen.... kann man den ausdruck des berichts durch irgendein feld im dazugehoerigem formular beinflussen
vielen dank fuer hilfe

bahasu

Hallo,

folgender Vorschlag:
1. In Deinem Bericht nutzt Du das Ereignis "Beim Öffnen". Dort trägst Du ein:
    Me.Dein_RechnungsnummerFeld.Visible = Nz(Me.OpenArgs) = True

2. Bei dem Aufruf Deines Berichtes übergibst Du den Wert des Feldes, das die Anzeige der Rechnungsnummer steuern soll.
Siehe access-Hilfe: Die Methode OpenReport führt die Aktion ÖffnenBericht in Visual Basic aus.
Ausdruck.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
Ich bin jetzt davon ausgegangen, dass dieses ein boolean-Feld ist. Deshalb bei 1. die Abfrage auf "= True".

Gruß
Harald






Servus

Dorian

Zitat von: hijack61 am September 08, 2010, 22:14:05
Alle 2 Stunden kommt irgendeine neue idee von einem der 2 und ich muss wieder aendern.

Du solltest den Beiden folgendes klarmachen:

1. Zuerst muss entschieden werden, welchen Daten insgesamt benötigt werden.
2. Dann werden die entsprechenden Tabellen erstellt und verknüpft. (+ normalisiert)
3. Dann werden die Formulare erstellt zur Dateneingabe.
4. Dann werden mit Hilfe von Abfragen die Berichte erstellt.


Wenn Du die Reihenfolge änderst, kommen immer mehr und mehr Probleme auf und die Arbeit die Du leistest, wird uneffektiv.  ;)


Dorian

hijack61

vielen dank fuer hilfe, aber komme immer noch nicht zurecht. Ich versuche es nochmal mit einer "Anfaenger" loesung. Lassen wir alle probleme weg. NUR MIT MAKROS bitte.   Beim Oeffnen des berichts moechte ich, das ein dort angelegtes feld sichtbar oder nicht ist, abhaengig von einem ja/nein feld im dazugegoerigen Formular. Verzeihung das ich diese einfache frage so komplizieren musste, aber habe schon fast die orientierung verloren, heheheh

bahasu

#6
Zitat von: hijack61 am September 09, 2010, 16:17:31
Lassen wir alle probleme weg. NUR MIT MAKROS bitte.

Hi,

also mit dem Weglassen von VBA fangen bei mir die Probleme an  ;D


Die denkbare Alternativen (globale Variable nutzen, um das Verhalten im Bericht zu steuern, ist vermutlich z.T. auch via Makro möglich (setzen wert ...), mir ist aber nicht klar, wie ich in einen Bericht, bei dem ich nicht einmal eine einzige VBA-Zeile (siehe obigen Beitrag) einsetzen darf, lenken soll.

Frage:
1. Wie rufst Du den Bericht aus Deinem Formular auf?

2. Was meinst Du mit "Beim Oeffnen des berichts moechte ich, das ein dort angelegtes feld sichtbar oder nicht ist, abhaengig von einem ja/nein feld im dazugegoerigen Formular"
Dass ein Formular zum Bericht gehört, ist mir neu, bin allerdings auch vom Guru-Dasein weit entfernt.


Vorschlag:
Du stellst eine gezippte Version der Datenbank (wenn möglich access2003, zur Not auch access2007) hier oder per Email zur Verfügung, und ich baue die beiden VBA-Zeilen ein.

Harald
Servus

database

Hallo,

Zitatkann ich dieses Feld im bericht vom formular aus beeinflussen

Ja, kannst du - allerdings solltest du die folgenden Zeilen sehr aufmerksam lesen.

Wir bedienen uns dabei der OpenArgs für den Bericht - also ein Argument, welches wir dem Bericht beim Öffnen / Laden übergeben können.

Du benötigst ein paar Zeilen VBA-Code dazu.
Du schreibst, dass du auf deinem Formular ein ja/nein - Feld eingefügt hast....
Dieses Feld ersetzt du durch eine Checkbox (Kontrollkästchen) benennst das Ding chkNCF und weist ihm im Register 'Daten' den Standardwert 0 zu.
Das Bezeichnungsfeld beschriftest du mit: 'NCF-Nummer anzeigen?'

Ich gehe weiter davon aus, dass dein Bericht 'rptRechnung' heissen mag, wenn nicht, bitte in den folgenden Codezeilen den aktuellen Namen eintragen.
Auf deinem Formular erzeugst du einen Button (wenn noch nicht vorhanden) um den Rechnungsbericht aufzurufen und nennst ihn 'cmdRechnung'.

Dann gehst du im Eigenschaftsfenster des Button auf das Register 'Ereignisse' und wählst dort bei 'Beim Klicken'
den Eintrag [Ereignisprozedur] aus und Klickst dann auf die 3 Punkte neben dem Kombifeld.

Der VBE (Visual Basic-Editor) öffnet sich und du befindest dich in der 'Private Sub cmdRechnung_Click()'
hier hin kopierst du folgenden Code: (zwischen 'Private Sub cmdRechnung_Click()' und 'End Sub')


    Dim ncf As Boolean

    'Feststellen ob NCF-Nummer angezeigt werden soll
    If Me.chkNCF = True Then
        ncf = True
    Else
        ncf = False
    End If
   
    'Den Bericht öffnen und die OpenArgs mit übergeben
    DoCmd.OpenReport "rptRechnung", acViewPreview, , , , ncf


Dann schließt du den VBE und speicherst das Formular und schließt es.
Als nächstes öffnest du deinen Rechnungsbericht im Entwurfsmodus, klickst auf das Auswahlquadrat in der linken oberen Ecke des Berichtsentwurfs und wählst in den Berichtseigenschaften
auf der Registerkarte Ereignisse das Ereignis 'Beim Laden', wiederum den Eintrag [Ereignisprozedur] auswählen und danach auf die drei Punkte klicken.

Die Prozedur 'Private Sub Report_Load()' wird angezeigt.
Folgenden Code kopierst du nun bitte zwischen 'Private Sub Report_Load()' und 'End Sub'


    'Wenn die OpenArgs True lauten wird die NCF-Nummer angezeigt
    'wird False übergeben wird die NCF-Nummer ausgeblendet

    If Me.OpenArgs = True Then
        Me.NCFNummer.Visible = True
    Else
        Me.NCFNummer.Visible = False
    End If


Das Feld mit der NCF-Nummer sollte in deinem Rechnungsbericht NCFNummer heissen, wenn nicht bitte den Feldnamen im obigen Code korrigieren.

Dann VBE schließen, Bericht speichern und schließen.

Als nächstes kannst du mal das Formular öffnen und mit gesetztem Häkchen im chkNCF den Bericht durch Buttonklick aufrufen, den Bericht wieder schließen, dann das Häkchen wegnehmen und wieder aufrufen.
Der Bericht wird durch das fett dargestellte Argument in der Druckvorschau angezeigt:   DoCmd.OpenReport "rptRechnung", acViewPreview, , , , cnf

Solte einwandfrei funktionieren!

HTH

Peter