[Access 2000] Bericht mit einem Datensatz

Budda

Erfahrenes Mitglied
Hallo.

Ich stehe vor folgendem Problem: In einem Access-Bericht werden alle Datensätze ausgegeben, es soll aber nur ein Datensatz angezeigt werden. Hier ist der VBA-Code:
Code:
Option Compare Database

Private Sub bericht_Click()
    On Error GoTo Err_bericht_Click

    Dim stDocName As String
    Dim strWhere As String

    stDocName = "Erfahrungsbericht"
    strWhere = pc_nr = Me!PCNR
    
    DoCmd.OpenReport stDocName, acPreview, , strWhere
    MsgBox (PCNR)
    MsgBox (strWhere)

Exit_bericht_Click:
    Exit Sub

Err_bericht_Click:
    MsgBox Err.Description
    Resume Exit_bericht_Click
    
End Sub

Die beiden MsgBoxen sind nur zum Test drin, allerdings gibt "MsgBox (strWhere)" auch den Wert "Falsch" aus.

Ich hoffe ihr könnte mir helfen.

Vielen Dank im Voraus, gruß Budda
 
Ich hab zwar noch nie was mit Berichten zu tun gehabt, aber ich glaube, den Fehler gefunden zu haben:

strWhere = pc_nr = Me!PCNR

Diese Mehrfachzuweisungen sind in VB nicht möglich
(sind zB in C möglich: a=b=c=d=5).

Soviel ich weiß wird mehr als ein = nicht als Zuweisung gezählt, sondern als Bedingung gewertet, was in deinem Fall logischerweise FALSCH zurückliefert.

lg D;-]c
 
Die Lösung hatte ich so im Internet gefunden. Vorher hatte ich es folgendermaßen:
Code:
DoCmd.OpenReport stDocName, acPreview, , "pc_nr = " & Me!PCNR
Und wenn ich dann den Wert per MsgBox für pc_nr ausgebe, kommt garnichts zurück

Aber du hattest Recht. Wenn ich es einzeln nacheinander zuweise geht es ...
Code:
pc_nr = Me!PCNR
    strWhere = pc_nr

nur leider zeigt der Bericht immernoch alle Datensätze :-/
 
Zuletzt bearbeitet:
Das da nichts raus kommt, dürfte relativ einfach zu erklären sein - es erfolgt keine Zuweisung, sondern nur eine Verknüpfung, die aber nirgends gespeichert wird - deshalb ist die Probeausgabe auch komplett wertlos.

Versuch mal das Nachfolgende einzubauen, das dürfte funktionieren:

Dim strDocName As String
Dim strWhere As String

strDocName = "Tabellenname"
strWhere = "pc_nr = ' " & Me!PCNR & " ' "

DoCmd.OpenReport ReportName:=strDocName, View:=acPreview, , WhereCondition:=strWhere

lg D;-]c
 
so komm ich zur ähnlichen Lösung wie vorher, die Werte hat er jetzt aber es werden immernoch alle Datensätze angezeigt ...
 
Zurück