Zum Inhalt springen

NUR aktuellen datzensatz drucken ?


Sicker

Empfohlene Beiträge

hallooooo !

mal ein access-problem was ich habe:

ich habe eine datenbank in der es sehr viele datensätze gibt.nun möchte ich nur den aktuellen datensatz drucken.die selben datensätze sind in EINEM bericht enthalten.wenn ich also durch meine datenbank gehe und einen datensatz drucken will,werden alle datensätze gedruckt.zwar in der gewünschten form, nämlich wird zwar der bericht gedruckt,aber wie gesagt,alle datensätze.ich möchte aber nur den aktuellen.es ist nicht so schlimm,wenn die ausdrucke nicht der bericht form entsprechen,hauptsache der aktuelle datensatz (und nur der) ist gedruckt.weiß jemand eine lösung ?

nochmal zum bericht:

der bericht enthält alle datensätze in einer "schönen" ausdruckbaren form (gleiche abstände,gut formatiert,hochkant format).die normale datenbank enthält eben buttons,textfelder,etc. auf dem formular.wenn der gewünschte text (also mein datensatz) mit ein paar buttons und so daneben auf dem blatt erscheint,ist das auch nicht so schlimm.es geht eben darum,dass wirklich nur der datensatz,der gerade aktuell ist,gedruckt wird und nicht alle...

nachtrag:

ich gehe durch meine datenbank und sehe einen datensatz,den ich gedruckt haben will.dann klicke ich auf "drucken",dieses icon ist auf den bericht verlinkt.der bericht enthält also alle datensätze.demnach ist es kein wunder,dass alle datensätze gedruckt werden,schließlich wird ja der gesamte bericht gedruckt.meine erste (schlechte) lösung: für jeden datensatz einen bericht anlegen.allerdings habe ich dann über 100 davon.ich hoffe ihr versteht was ich meine :confused: ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

*hmmm*

schon mal mit einer art-suchabfrage ausprobiert ??

so in der art :

if datensatz ID is größer als datensatz ID vom vorgänger then

gib aus datensatz

okok is echt nur dummer hinweis

und genau den quellcode oder so bauen bekomm ich jetzt auch nett hin:D

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

theoretisch:

[*]eine abfrage erstellen, mit der auf einen datensatz eingeschraenkt werden kann (ueber den primaerschluessel)

[*]die abfrage mit dem primaerschluessel des interessierenden datensatzes ausfuehren

[*]das ergebnis dieser abfrage als datenquelle fuer den bericht benutzen

[*]und drucken...

[/list=1]

muesste doch so oder so aenlichin access moeglich sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

thx schonmal,aber habe gerade noch das hier gefunden...hilft mir zwar ein wenig,aber funktionieren tut es immer noch nicht:

P r o b l e m

Du möchtest aus einem Formular heraus nur den aktuellen Datensatz drucken. Wenn du den entsprechenden Bericht öffnest, werden aber immer alle Datensätze des Formulares bzw. der zugrundeliegenden Tabelle oder Abfrage ausgegeben.

L ö s u n g e n

Verwende als Datensatzherkunft des Berichtes eine Abfrage und schreibe dort bei den Kriterien eines passenden, eindeutigen Feldes einen Bezug auf dein Formular:

Formulare!Dein_Formular!Dein_Eindeutiges_Feld

oder

Wenn du den Bericht per VBA öffnest, kannst du den Bezug auf den aktuellen Datensatz im Formular direkt übergeben. z.B.

bei einem Zahlfeld:

DoCmd.OpenReport "DeinBericht", , , "ID =" & Me!ID

bei einem Textfeld:

DoCmd.OpenReport "DeinBericht", , , "Firma = '" & Me!Firma & "'"

Analog kannst du vorgehen, wenn du nicht nur einen Datensatz, sondern eine Gruppe von Datensätzen mit einem gemeinsamen Merkmal drucken willst.

die erste lösung funktioniert zwar,hat aber den nachteil,dass man nicht durch die datensätze scrollen kann,sprich: ich gehe von der hauptseite auf mein formular,von dem ich einen datensatz drucken will.jedoch erscheint nach dem klick auf mein formular dann eine abfrage,in der ich die nummer des datensatzes eingeben kann.dann gebe ich eine zahl ein und der datensatz wird angezeigt.allerdings nur der eine.sprich ich kann nicht durch die anderen datensätze scrollen.wenn ich dann auf drucken klicke,wird auch wirklich nur der aktuelle datensatz ausgedruckt.allerdings will ich ja auch die anderen datensätze sehen können.

zur zweiten lösung: hab ich versucht,"deinBericht" habe ich durch meinen ersetzt,aber was muss ich noch ersetzen ? funzt nämlich nicht,es werden nach wie vor alle 100 datensätze gedruckt...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von TaoNW

*weißt mal kurz auf seine 2 Probleme hin da seine DB am Freitag beim Chef abgegeben werden muss*

1. Das hat nichts mit dem Thread hier zu tun.

2. Hab ich schon mal erwähnt, bzw. steht auch in den Boardregeln das Threadpushing hier nicht gerne gesehen wird. Das gilt sowohl für das pushen im selben Thread als auch für "Hinweise" in anderen Threads

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm das dieses Abfrage-PopUp nicht mehr kommt musst du deine Abfrage nochmal durchlaufen lassen und sehen an welcher stelle das hochkommt,

schätzungsweise (würd ich sagen) übergibst du da keine werte nach dennen er filtern, bzw wo er weiß welchen datensatz du meinst.

würde ich irgendwie mit einer funktion wegmachen, die dir nur den wert übernimmt den du selektiert hast (also sprich den du angewählt hast).

irgendwo hab ich auch so ne prozedur in meiner db.

ich seh mal nach und meld mich wieder

@Wolle

sorry, stehe einfach nur unter druck und bin deshalb ein kleiner hetzbock

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok hier der Quelltext :

Das ganze läuft über ein Listenfeld in dem mehrere Datensätze drin stehen.

Es wird einer ausgewählt/angeklickt und dann über einen Button weiterverarbeitet.

HF_Buchen...... sind die Namen meines Formulars, bzw der einzelnen Felder

Dim chk_selected As Boolean {Variable die angibt ob selektion vorhanden}

chk_selected = False {wird erst immer auf nein gesetzt}

For y = 0 To Forms!HF_Buchen!Bezeichnung.ListCount - 1

If Forms!HF_Buchen!Bezeichnung.Selected(y) = True Then

chk_selected = True

GoTo weiter

End If

Next y

{bis hier wird abgefragt ob etwas selektiert wurde}

MsgBox "Sie müssen einen Artikel auswählen!", vbInformation, "Anwenderfehler!"

Exit Function

weiter:

If chk_selected = True Then

DoCmd.Hourglass True

DoCmd.OpenForm "HF_Pflegen" {hier wird ein Formular anstatt eines Berichts geöffnet}

End If

Forms!HF_Pflegen!Komponenten_ID = Forms!HF_Buchen!Bezeichnung.Column(0)

Forms!HF_Pflegen!Bezeichnung = Forms!HF_Buchen!Bezeichnung.Column(1)

Forms!HF_Pflegen!Hersteller = Forms!HF_Buchen!Bezeichnung.Column(7)

Forms!HF_Pflegen!Gruppen = Forms!HF_Buchen!Bezeichnung.Column(8)

Forms!HF_Pflegen!Untergruppen = Forms!HF_Buchen!Bezeichnung.Column(9)

Forms!HF_Pflegen!Bestand = Forms!HF_Buchen!Verfuegbar

Forms!HF_Pflegen!Info = Forms!HF_Buchen!Info

Forms!HF_Pflegen!Meldebestand = Forms!HF_Buchen!Bezeichnung.Column(5)

Forms!HF_Pflegen!Produktnr = Forms!HF_Buchen!Bezeichnung.Column(6)

{das hier is für ein Formular, für einen Bericht weiß ich nicht wie es geht, sorry}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...