DataReport - Abfrage aus mehreren Tabellen

Hallo Ines,

du bekommst mit diesem Befehl und deiner Textbox alle Beträge angezeigt
die in der Tabelle tblRaiba16 stehen und zwar gruppiert nach IDMonat.
Die Textbox ist da sie sich im Detailsbereich befindet dann dynamisch und je
nach dem wie viele Datensätze vorhanden sind werden entsprechend viele Zeilen
angezeigt.

Du müsstet jetzt mal noch den Gruppenkopf nutzen und den Gruppenfussbereich.
Damit wird das ganze etwas besser verständlich.

Erstelle eine Textbox im Gruppenkopf und weise z.B. das Feld "IDMonat" zu.

.Sections("Bereich6").Controls("txtDatum").DataField = "IDMonat"


Damit wird dir auch die Gruppierung angezeigt.
D.h. wenn du in der Tabelle tblSpk16
3 Einträge hast dann bekommst du 3 Gruppen angezeigt die im Detailsbereich
alle Beträge zu der jeweiligen Gruppe.

Gruß
Jens
 
Hi Jens,

ich krieg echt noch die Krise...

Mein Code sieht so aus:
Code:
Private Sub cmdAusdruck_Click()
    Set rsCountDruck = New Recordset
    rsCountDruck.Open "tblMonat", mdiVölkel.con, adOpenKeyset, adLockOptimistic
    
    IDDruck = rsCountDruck.RecordCount
    
    With rsAusdruck
        .ActiveConnection = mdiVölkel.cnShape
        .Source = "SHAPE {SELECT * FROM tblMonat WHERE ID = " & IDDruck & "} AS tblMonat " _
        & "APPEND ({SELECT * FROM tblSpk16} " _
        & "RELATE ID TO IDMonat) AS tblSpk16, " _
        & "({SELECT * FROM tblRaiba16} " _
        & "RELATE ID TO IDMonat) AS tblRaiba16, " _
        & "({SELECT * FROM tblKasse16} " _
        & "RELATE ID TO IDMonat) AS tblKasse16"
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        .Open
    End With

    With rptMwst
        Set .DataSource = rsAusdruck
    End With
    
    rptMwst.Sections("Bereich6").Controls("txtMonat").DataMember = "tblMonat"
    rptMwst.Sections("Bereich6").Controls("txtMonat").DataField = "Monat"
    
    rptMwst.Sections("Bereich1").Controls("txtSpk16").DataMember = "tblSpk16"
    rptMwst.Sections("Bereich1").Controls("txtSpk16").DataField = "Betrag"
    
    rptMwst.Sections("Bereich1").Controls("txtraiba16").DataMember = "tblRaiba16"
    rptMwst.Sections("Bereich1").Controls("txtRaiba16").DataField = "Betrag"

    rptMwst.Sections("Bereich1").Controls("txtKasse16").DataMember = "tblKasse16"
    rptMwst.Sections("Bereich1").Controls("txtKasse16").DataField = "Betrag"

    rptMwst.Show
End Sub

Da kommt dann die Fehlermeldung:
DataField 'tblMonat.Monat' nicht gefunden

Ich hab insgesamt 8 Tabellen. Eine übergeordnete tblMonat und sieben, die davon abhängen. Hab jetzt erst mal nur drei abhängige genommen.

Im Gruppenkopf ist txtMonat, die restlichen Felder sind im Detailbereich.

Wieso krieg ich die Daten nicht angezeigt? Ich dachte eigentlich, ich hätte alle Fehler aus dem Shape-Befehl raus. Aber irgendwas scheint immer noch nicht zu stimmen.

Viele Grüße,
Ines
 
Hallo Ines,

im Gruppenkopf muss die Member Angabe raus.
Also diese Zeile rauslöschen.

rptMwst.Sections("Bereich6").Controls("txtMonat").DataMember = "tblMonat"

Gruß
Jens
 
Hi Jens,

super hat geklappt... Danke

Aber es klappt nur, wenn ich max. zwei Tabellen hab. Also nur mit tblMonat und tblSpk16. Sobald ich eine Tabelle mehr hab, geht nichts mehr. Fehlermeldung ist wieder, dass das jeweilige DataField nicht gefunden wurde.

Ich hab im Internet gesucht und gesucht und bin eigentlich schon der Meinung, dass es so jetzt richtig ist.

Code ist noch der gleiche wie oben nur eben ohne die Zeile beim Gruppenkopf.

Viele Grüße,
Ines
 
Hallo Ines,
da muss ich passen , mit mehr als 2 Tabellen habe ich das noch nicht probiert und glaube auch nicht das dies geht.
In dem Fall muss man sich mit einer temporären Hilfstabelle helfen die nur für den Druck dient und vorher über SQL Abfragen über mehrere Tabellen gefüllt wird.

Aber zumindest hast du es ja soweit schon mal gepackt :)

Gruß
Jens
 
Hi Jens,

also mit mehr als zwei Tabellen geht es wirklich nicht... schade eigentlich. Aber wär ja zu schön gewesen, wenn VB mal so mag wie ich *grummel*

Hab es jetzt mit temporären Tabellen gelöst. Das war zwar anfangs ein bisschen chaotisch, aber jetzt bin ich doch ganz zufrieden damit.

Danke auf jeden Fall für deine Hilfe. Auch wenns leider nicht so geklappt hat... jetzt weiß ich immerhin wieder ein bisschen mehr.

Viele Grüße,
Ines
 
Zurück