MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 26.01.2015, 21:37   #1
manuel74
MOF User
MOF User
Standard Acc2010 - Listenfeld mit Schleife durlaufen funzt nicht

Hallo,

ich möchte über eine Mehrfachauswahl (oder auch nur einfach) in einem Listenfeld einen Bericht aufrufen

Code:

    For Each varElement In Me.lstFahrer.ItemsSelected
    lngDriver = Me.lstFahrer.Column(0)
    DoCmd.OpenReport strDocName, acViewPreview, , "FahrerID = " &  lngDriver
    Next varElement
Bei einem Ausgewählten Eintrag läufts auch, aber bei mehreren bleibt die Variable lngDriver immer beim selben Wert

Was mach ich denn da falsch?
manuel74 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.01.2015, 23:11   #2
daolix
MOF User
MOF User
Standard

Hallo

Was iss'n dein Ziel? Mit Docmd.OpenReport kannst du einen Bericht immer nur einmal öffnen(ausser in 2010 isses wieder anders)

__________________

(K)ein Plan von nix
daolix ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 00:56   #3
Marsu65
MOF Guru
MOF Guru
Standard

Hallo zusammen,

eine Möglichkeit von einem Bericht mehrere Instanzen zu öffnen:
Im Bericht:
Code:

Dim repMe As Report_BERICHTSNAME

Private Sub Report_Open(Cancel As Integer)
    Set repMe = Me 'Selbsterhaltende Referenz
End Sub

Private Sub Report_Close()
   Set repMe = Nothing
End Sub
In einem Modul:
Code:

   Dim rep As Report_BERICHTSNAME
   
   Set rep = New Report_BERICHTSNAME
   rep.Filter = "deine Filterkriterien"
   rep.FilterOn = True
   rep.Visible = True
   Set rep = Nothing
Um den letzten Teil müsstest du deine Schleife wickeln

Geändert von Marsu65 (27.01.2015 um 00:58 Uhr).
Marsu65 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 07:36   #4
manuel74
Threadstarter Threadstarter
MOF User
MOF User
Standard

Eigentlich soll eine reihe von Berichten, sortiert nach Fahrern, gedruckt werden. Die Vorschau Einstellung habe ich nur vorübergehend gewählt.
manuel74 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 08:15   #5
manuel74
Threadstarter Threadstarter
MOF User
MOF User
Standard

Auch wenn ich den Bericht nach jeder Schleife wieder schließe wird jedes mal der Bericht mit dem gleichen Datensatz geöffnet.

Code:

 For Each varElement In Me.lstFahrer.ItemsSelected
    lngDriver = Me.lstFahrer.Column(0)
    DoCmd.OpenReport strDocName, acViewPreview, , "FahrerID = " & lngDriver
    DoCmd.Close acReport, strDocName
    Next varElement
manuel74 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 08:18   #6
CptChaos
MOF Guru
MOF Guru
Standard

Zitat: von manuel74

Eigentlich soll eine reihe von Berichten, sortiert nach Fahrern, gedruckt werden

Wieso über die (aufwendige) Schleife?
Das ließe sich auch über eine entsprechende Abfrage die als Datenherkunft für den Bericht dient lösen...

__________________

Benny Wunder
alias CptChaos

Es gibt 10 Arten von Menschen!
Die, die den Binärcode verstehen und die, die ihn nicht verstehen.
Bitte keine ungefragten PN´s oder Mails. Fragen und Lösungen gehören hier ins Forum, dann ist auch anderen geholfen!

| .NET-Komfort bei der Stringzusammensetzung in VBA | Formularformatierung und -validierung durch eine Klasse |
| Don Karl´s FAQ | DBWiki | Relationale DBs | Datenbanken bei ardiman.de | Access-Tutorial | AccEPT auf joposol.com |
| Erste Fehleranalyse mit Debug.Print |


Und noch was: Bei erledigten Themen, diese bitte auch mit dieser tollen Funktion als erledigt kennzeichnen.
CptChaos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 08:19   #7
truthworthy
MOF User
MOF User
Standard

Was soll auch anderes dabei rauskommen:
Code:

lngDriver = Me.lstFahrer.Column(0)
Versuch es mal lieber mit dem "varElement"

HTH
truthworthy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 08:33   #8
ebs17
MOF Guru
MOF Guru
Standard

Ergänzend:
Code:

lngDriver = Me.lstFahrer.Column(0)
Der Rückgabewert eines Listenfeldes mit Mehrfachauswahl ist stets Null. Wie man Null einer Longvariable zuweisen kann und dann sogar mit diesem Filter einen Bericht geöffnet bekommt, ist höchst verwunderlich.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 08:44   #9
Maxel
MOF Guru
MOF Guru
Standard

Teste mal
Code:

Dim i As Long
For i = 0 To Me!lstFahrer.ListCount - 1
   If Me!lstFahrer.Selected(i) Then
      DoCmd.OpenReport strDocName, acViewPreview, , "FahrerID = " & Me!lstFahrer.Column(0, i)
   End If
Next i

__________________

Viele Grüße von Maxel

Nie aufhören anzufangen,
nie anfangen aufzuhören!
Maxel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 10:43   #10
Marsu65
MOF Guru
MOF Guru
Standard

Zitat:

Eigentlich soll eine reihe von Berichten, sortiert nach Fahrern, gedruckt werden. Die Vorschau Einstellung habe ich nur vorübergehend gewählt.

Schön, dass mal wieder die eigentliche Aufgabenstellung 'nachgereicht' wird.
Marsu65 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 10:43   #11
Joss
MOF Profi
MOF Profi
Standard

Hallo manuel74,

dein Code, leicht abgeändert, in Sofortdruckversion:
Code:

 For Each varElement In Me.lstFahrer.ItemsSelected

   'entweder (siehe Antwort von truthworthy)
   lngDriver = Me!lstFahrer.ItemData(varElement)

   'oder (siehe Code von Maxel)
   lngDriver = Me!lstFahrer.Column(0, varElement)


   DoCmd.OpenReport strDocName, , , "FahrerID = " & lngDriver
   DoCmd.Close acReport, strDocName

Next varElement
Gruß Josef
Joss ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2015, 13:20   #12
manuel74
Threadstarter Threadstarter
MOF User
MOF User
Standard

Vielen Dank

Das war genau das was ich gesucht habe, ich bin leider ziemlich raus dem Thema

Code:

Dim i As Long
For i = 0 To Me!lstFahrer.ListCount - 1
   If Me!lstFahrer.Selected(i) Then
      DoCmd.OpenReport strDocName, acViewPreview, , "FahrerID = " & Me!lstFahrer.Column(0, i)
   End If
Next i
manuel74 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.