Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Drucken einer Mehrfachauswahl eines Listenfeldes





Frage

Mahlzeit! Ich hätte da ein kleines Access Problemchen: Ich möchte aus einem Listenfeld, indem man eine nicht erweiterte Mehrfachauswahl machen kann die markierten Datensätze drucken. Also markieren und dann einen Button drucken. Ich weis nicht so recht wie ich das anstellen soll! Muss ich da einen Bericht machen ? Übergibt ein Listenfeld irgendie selektierte Daten als SQL Abfrage ??? Vielen Dank schonmal für eure Hilfe ! Steffen

Antwort 1 von Koebi

Hallo Steffen

Schau mal hier:

http://support.microsoft.com/default.aspx?scid=kb%3Bde%3BD31659

Gruss
Köbi

Antwort 2 von SteffenV

Dankeschön!

wenns net klappt erlaube ich mir nochmal zu schreiben...


mfg+

Steffen

Antwort 3 von SteffenV

Wer hätte es gedacht ! Beim "Filter Syntax" bin ich an meine Grenzen gestoßen !

Mein Code heißt bis jetzt so:

Private Sub Befehl113_Click()
Dim i As Long
Dim Auswahl As String, Sel As String
On Error GoTo Fehler_Befehl2_Click

If Me!Liste101.ItemsSelected.Count <> 0 Then
For i = 0 To Me!Liste101.ItemsSelected.Count - 1
Auswahl = Me!Liste101.ItemData _
(Me!Liste101.ItemsSelected(i))
´** Die In-Klausel zusammensetzen
If Len(Sel) > 0 Then
Sel = Sel & ","
End If
Sel = Sel & Chr(34) & Auswahl & Chr(34)
Next
´** Die Bedingung vervollständigen
Sel = "[Kunden-Code] in (" & Sel & ")"

DoCmd.OpenReport "rep_druck", acPreview, , Sel
Else
MsgBox "Bericht wird nicht geöffnet, da keine Datensätze ausgewählt."
End If
Exit Sub
End Sub

Ich hatte auch schon eine ähnliche lösung. da hab ich meinen sql string mit einer where - clausel verkettet und den ganzen string dann als Filter benützt, aber das ist inhaltlich garantiert falsch! Wie ist denn der reine Syntax für die Variable die im obrigen code SEL heißt ??

Ich verstehe auch nicht was [Kunden Code] und chr(34) in meinem Fall sein soll !


Kurz Daten zur DB:

Listenfeld : Liste101
Formular: frm_eingabe_und_suche
Bericht: rep_druck

Vieln Dank für eure Hilfe !!


Steffen

Antwort 4 von Koebi

Hallo Steffen

Sel ist ein String, der die selektierten Datensätze aufnimmt (Dim Sel As String in der 3. Zeile des Codes).

Kunden-Code ist das Feld, welches einen DS eindeutig bezeichnet. In der Nordwind-DB ist er in der Tabelle Kunde als Format Text definiert.
Kunden-Code musst Du also durch den Feldnamen Deiner eigenen Tabelle ersetzen. Ist das Feld bei Dir nicht Text, sondern Zahl oder AutoWert, heisst die In-Klausel:

´ Die In-Klausel zusammensetzen
If Len(Sel) > 0 Then
Sel = Sel & ","
End If
Sel = Sel & Auswahl

Das Chr(34) fällt also weg.
Die Chr -Funktion ist in der VisualBasic-Hilfe beschrieben:

Gibt einen Wert vom Typ String zurück, der das Zeichen enthält, das dem angegebenen Zeichen-Code zugeordnet ist.

Syntax

Chr(Zeichencode)

Das erforderliche Argument Zeichencode ist ein Wert vom Typ Long, der ein Zeichen festlegt.

Bemerkungen

Die Zahlen von 0 bis 31 entsprechen den nicht darstellbaren Standard-ASCII-Codes. Chr(10) gibt zum Beispiel ein Zeilenvorschubzeichen zurück. Der normale Bereich für Zeichencode ist 0 bis 255. Auf DBCS-Systemen entspricht der tatsächliche Bereich für Zeichencode jedoch -32768 bis 65535.


Chr(34) gibt das Zeichen " zurück.

Gruss
Köbi

Antwort 5 von SteffenV

Vielen Dank für die wie immer kompetente Hilfe !

Hab das Problem jetzt gelöst!


Schönen Extrem-Winter-Tag !


Steffen

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: