Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Bericht aus Listenfeld öffnen

Access 365 2024 2021 2019 2016 2013 2010

FRAGE Aus einem Listenfeld (Listbox) mit den Feldern "Kundennummer" (Autowert, bei der Eingabe gesetzt) und "Kundenname", ca. 100 Einträge, möchte ich durch Anklicken des Kundennamens diesen Namen in den Report "Daten des Kunden" übertragen. Hinter diesem Report steht eine Abfrage gleichen Namens, die in dem Feld "Kundenname" als Kriterium "[Kundenname].[Name]" hat. Bei normalem Aufruf des Reports erscheint ein Fenster, in dem nach dem Kundenamen gefragt wird. Diese zusätzliche Eingabe möchte ich vermeiden, und durch das Anklicken aus dem Listenfeld ersetzen.

Diverse Anfragen

ANTWORT Wenn Sie als Kriterium "Kundenname" verwenden, gibt es Probleme, sobald einmal zwei Kunden mit gleichem Namen vorhanden sind. Besser ist es, die automatisch generierte Kundennummer als Kriterium zu verwenden. Entfernen Sie zunächst das Kriterium in der Abfrage. Geben Sie dann in der Eigenschaft "Beim Klicken" des Listen-Steuerelementes folgende Anweisungen ein:

Dim lngKdNr As Long

lngKdNr = Me.Listenfeld.Column(0)
DoCmd.OpenReport _
      ReportName:= "Daten des Kunden", _
      WhereCondition:= "[Kundennummer]= " & lngKdNr

Zunächst wird aus der Spalte 1 des Listenfeldes die Kundennummer ausgelesen - die Adressierung erfolgt hier von "0 bis Anzahl Spalten -1", so dass Index "0" die erste Spalte liefert. Anschließend öffnet "DoCmd.OpenReport" den Bericht. Der Parameter "WhereCondition" sorgt dabei dafür, dass nur der einzelne Datensatz des Kunden gemäß Kundennummer ausgedruckt wird. Wenn Sie doch nach Kundenname selektieren möchten, verwenden Sie folgende Anweisungen:

Dim strName As String

strName = Me.Listenfeld.Column(1)
DoCmd.OpenReport _
      ReportName:= "Daten des Kunden", _
      WhereCondition:= "[Kundenname]= '" & strName & "'"

Hier lesen wir zunächst den Namen aus Spalte 2 des Listenfeldes. Die WhereCondition ist entsprechend auf "Kundenname" geändert, wobei der Name in einfachen Hochkommas anzugeben ist.