Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Optionenbedingter Bericht

Begonnen von mechanikus, Juli 06, 2005, 15:25:31

⏪ vorheriges - nächstes ⏩

mechanikus

Hallo!
In einem Formular ist eine Ja/Nein Spalte. Ich will Bericht ausdrucken, der die Datensätze beinhaltet, die  nur "Ja" oder nur "Nein" oder  "Ja" und "Nein" haben. Ich habe mir gedacht ein Optionsfeld zu erstellen, wo man die für den gewünschten Bericht Option wählen kann. Kann man das mit einer Abfrage und einem Bericht irgenwie realisieren oder muss man doch 3 Abfragen und 3 Berichte erstellen.

Danke im Voraus! 

DF6GL

Hallo,

erstell zunächst mal einen Bericht (Bericht1) , der als Datenherkunft die Tabelle erhält.


Im Formular machst Du erst eine Optionsgruppe (OptGruppe), auf die Du 3 Optionsfelder ziehst:

"Ja", "Nein","Alle"  wobei die Optionsgruppe den Standardwert 3 erhält (für "Alle")

Weiterhin einen Button (Drucken) und dessen Ereignisprozedur "Beim Klicken":

Sub Drucken_Click()
Dim strFilter as String
Select Case Me!OptGruppe
Case 1
strFilter="Ja_Nein_Feld=-1"
Case 2
strFilter="Ja_Nein_Feld=0"
Case 3
strFilter=""
Case else
strFilter=""
End Select
Docmd.Openreport "Bericht1",,,strFilter
End Sub





mechanikus

Hallo!

Es hat geklappt. Prima! Ich würde das noch mit einer zusätlichen Ausgabemöglichkeit erwitern . Und zwar ich will meine Datensätze in einer Datei speichern. Das kann man mit DoCmd.OutputTo acReport, stDocName machen, dann wird aber alle Datensätze abgespeichert und ich will zuerst ausfiltern. Wie gets es dann?

DF6GL

Hallo,

indem Du das Ganze mit Transfertext machst und dabei eine entspr. gestaltete Abfrage benutzt

DF6GL

Hallo,

zur Erklärung gibt es die VBA-Hilfe. Dort steht alles Nötige dazu und Beispiele... ;)

DF6GL

Hallo,


Wenn ich für Dich einen Programmschnippsel schreiben soll, mußt Du mit viel mehr Einzelheiten herausrücken, z. B. Tabellename, Feldnamen, Feldtypen, wo die ID-Werte für die DS zu finden sind, bzw. wie die heißen usw. usw. :)

nix AusgabeIn und OutputTo! :o
VBA-Hilfe zu TransferText sollst Du anschauen. Und da steht folgendes:

ZitatTransferText-Methode
Siehe auch Betrifft Beispiele Besonderheiten
Die TransferText-Methode führt die TransferText-Aktion in Visual Basic aus.

Ausdruck.TransferText(Transfertyp, Spezifikationsname, Tabellenname, Dateiname, BesitztFeldnamen, HTML-Tabellenname, Codepage)

Ausdruck   Erforderlich. Ein Ausdruck, der eines der Objekte in der Liste Betrifft zurückgibt.

Transfertyp  Optionaler AcTextTransferType-Wert.

AcTextTransferType kann einer der folgenden AcTextTransferType-Konstanten entsprechen.
acExportDelim
acExportFixed
acExportHTML
acExportMerge
acImportDelim Standard
acImportFixed
acImportHTML
acLinkDelim
acLinkFixed
acLinkHTML
Wenn Sie dieses Argument nicht angeben, wird die Standardkonstante (acImportDelim) verwendet.

Anmerkungen   Sie können Verknüpfungen zu Daten in einer Textdatei oder HTML-Datei herstellen, jedoch sind diese Daten in Microsoft Access schreibgeschützt.

In einem Microsoft Access-Projekt (ADP) werden nur die Transfertypen acImportDelim, acImportFixed, acExportDelim, acExportFixed oder acExportMerge unterstützt


Spezifikationsname  Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen einer Import- oder Exportspezifikation angibt, die Sie in der aktuellen Datenbank erstellt und gespeichert haben. Bei einer Textdatei mit fester Zeilenlänge müssen Sie entweder ein Argument angeben oder eine Schemadatei (Schema.ini) verwenden, die in demselben Ordner wie die importierte, verknüpfte oder exportierte Textdatei gespeichert sein muss. Zur Erstellung einer Schemadatei können Sie den Import/Export-Assistenten für Text verwenden. Bei Textdateien mit Trennzeichen und Microsoft Word-Seriendruck-Datendateien können Sie dieses Argument auslassen, um so die Standardimport- und Exportspezifikation auszuwählen.

Tabellenname  Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen einer Microsoft Access-Tabelle zum Importieren, Exportieren oder Verknüpfen von Textdaten angibt, oder die Microsoft Access-Abfrage, deren Ergebnisse in eine Textdatei exportiert werden sollen.

Dateiname  Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den vollständigen Namen und den Pfad der Textdatei angibt, die zum Importieren, Exportieren oder Verknüpfen von Daten verwendet werden soll.

BesitztFeldnamen  Optionaler Variant-Wert. Verwenden Sie True (–1), um die erste Zeile der Textdatei beim Importieren, Exportieren oder Verknüpfen zur Angabe der Feldnamen zu verwenden. Verwenden Sie False (0), wenn die erste Zeile als normale Datenzeile gelten soll. Wenn Sie dieses Argument nicht angeben, wird der Standardwert (False) verwendet. Dieses Argument wird bei Word für Windows-Seriendruck-Datendateien ignoriert, da diese in der ersten Zeile immer Feldnamen enthalten müssen.

HTML-Tabellenname  Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen der Tabelle oder Liste in der HTML-Datei angibt, die Sie importieren oder verknüpfen möchten. Dieses Argument wird nur dann beachtet, wenn das Argument Transfertyp auf acImportHTML oder acLinkHTML festgelegt ist. Wenn Sie dieses Argument nicht angeben, wird die erste Tabelle oder Liste in der HTML-Datei importiert oder verknüpft. Der Tabellen- oder Listenname in der HTML-Datei wird durch den im <CAPTION>-Tag angegebenen Text bestimmt, falls ein solches Tag vorhanden ist. Andernfalls wird der Name durch den Text bestimmt, der im <TITLE>-Tag angegeben ist. Wenn mehrere Tabellen oder Listen denselben Namen aufweisen, werden sie von Microsoft Access durch Hinzufügen einer Zahl zum Tabellen- oder Listennamen unterschieden, wie z. B. Personal1 und Personal2.

Codepage  Optionaler Variant-Wert. Ein Wert des Typs Long, der den Zeichensatz der Codepage angibt.

Hinweise
Weitere Informationen zur Funktionsweise dieser Aktion und ihrer Argumente finden Sie unter dem Thema zur jeweiligen Aktion.

Sie können optionale Argumente in der Syntax weglassen, müssen jedoch in jedem Fall das zum Argument gehörende Komma angeben. Wenn Sie Argumente am Anweisungsende weglassen, entfällt auch das Komma nach dem letzten angegebenen Argument.

Anmerkung   Sie können auch ActiveX-Datenobjekte (ADO-Objekte) verwenden, um eine Verknüpfung zu erstellen. Dies lässt sich mit Hilfe der ActiveConnection-Eigenschaft des Recordset-Objekts durchführen.

Beispiel
Dieses Beispiel exportiert die Daten aus der Microsoft Access-Tabelle Externer Bericht in die Textdatei mit Trennzeichen APRIL.DOC unter Verwendung der Spezifikation Standardausgabe.

DoCmd.TransferText acExportDelim, "Standard Output", _
    "External Report", "C:\Txtfiles\April.doc"

mechanikus

Hallo!

Danke für die Hilfe! Ich habe verbaute_Teile_Hauptformular und verbaute_Teile_Unterformular duch ID_Engang verbunden. Im Unterformular sind die Datensätze die ich in eine TXT-Datei ausgeben will, natürlich gefilgtert. Für den Bericht wurde eine Abfrage erstellt Abfrage_verbaute _Teile mit dem ID_Eingang im Hauptformular als Kriterium. Diese Abfrage wollte ich für Dateierstellung verwendet.

Ich habe versucht für Anfang an irgendwas in dei Datei ausgeben (erstellen). Diese Aktion sollte durch folgende Code in Gang gesetzt:

Private Sub Befehl38_Click()
On Error GoTo Err_Befehl38_Click

    Dim stDocName As String

    stDocName = "C:\Bericht_verbaute_Teile"
   
    DoCmd.TransferText acExportDelim, , "Abfrage_verbaute_Teile", stDocName
   
   
   
Exit_Befehl38_Click:
    Exit Sub

Err_Befehl38_Click:
    MsgBox Err.Description
    Resume Exit_Befehl38_Click
   
End Sub



Kommt aber Felermeldung: "Aktualisierung nicht möglich; Datenbank oder Objekt ist schreibgeschützt"

DF6GL

Hallo,

hast Du die Text-Datei irgendwie noch z. B. durch Notepad geöffnet? Stimmt der Dateiname überhaupt (es fehlt die Dateierweiterung)?


mechanikus

Hallo!

H-mmm, heute klappt es, warum auch immer... Es lag an der Erweiterung... Ich kann jetzt aber alle Datensätze in eine Datei ausgeben. Hura!
Im nächsten Schritt sollen nur die Datensätze gespeichert werden, die in einem Feld nur "JA", "NEIN" oder "JA" und "NEIN" haben. Jetzt weiss ich nicht, wie man es erledigen soll. Bitte um Hilfe . :)


DF6GL

Hallo,

indem Du in der Abfrage für das Feld ein entspr. Kriterium benutzt.

DF6GL

Hallo,

ich hasse solche Wenn-Konstruktionen und auch die Verweise auf Formularfelder wie die Pest....   :o


aber..vielleicht so:

Wenn([Formulare]![verbaute_Teile_Hauptformular]![Druckoptionen]=2;-1;"")



mechanikus

#11
Hallo!

Vielen DANK!!!!!   ;D . Es macht so,wie ich will.

Gibt es rafinierte Varianten, schreib rein, weil für mich gab es nur eine Variante mit WENN.
Weisst Du vielleicht wie man Vorlagedatei (ini) erstellt oder wo das nachzulesen ist. Weil es werden einige Felder aus gegeben, die immer gleichen Inhalt haben. Die sollen aber nur einmal vorkommen.

z.B
ist
Auto; grün; r45;vorder;12345
Auto; grün; r45;hinten;23166

soll
Auto; grün;r45

vorder;12345
hinten;23166

Das wäre viel übesichtiger.


Nachtrag:

Wenn ich zwei Kriterien nehme für JA und NEIN, dann mekert Access. Wenn ich einzeln nehme dann ist alles OK! Zuviel WENN oder was?

Wenn([Formulare]![verbaute_Teile_Hauptformular]![Druckoptionen]=2;-1;"") und [Formulare]![verbaute_Teile_Hauptformular]![ID_Eingang]

oder

Wenn([Formulare]![verbaute_Teile_Hauptformular]![Druckoptionen]=3;0;"") und [Formulare]![verbaute_Teile_Hauptformular]![ID_Eingang]

DF6GL

Hallo,

Was meinst Du mit Vorlagen- oder INI-Datei?

Erstell für das Beispiel einen Bericht, in dem Du gruppierst , oder Duplikate ausblendest.


Was ist denn ID_Eingang?

Hat das was mit diesem JA/Nein-Feld zu tun?

DF6GL

Hallo,

es gibt zwar eine INI-Datei für Access, aber die wird m. W. nur noch zur Kompatibilität mitgeschleift.

Und

Zitatman kann die daten formatiert aufhand einer Vorlage Speichern

kenne ich nicht.


Wenn ID_Eingang nicht mit dem JA/Nein-Feld zu tun hat, kannst Du es doch auch nicht als Kriterium für dieses Feld verwenden.... Dann muß der Formular-Verweis in die Spalte, die zum Feld ID_Eingang gehört.

DF6GL

Hallo,

also, ich verstehe Deine Beschreibung nicht.

Für ID_Eingang scheint es zu gehen. OK.

Wie heißt jetzt das Kriterium, das Du für das Ja/Nein-Feld eingesetzt hast?
Wie heißt das Ja/Nein-Feld denn nun??

Poste mal den SQL-String