Rapport geeft 1 record aan zelfs terwijl een andere is geselecteerd

Status
Niet open voor verdere reacties.

Honky

Gebruiker
Lid geworden
18 apr 2007
Berichten
25
Ik heb een form met daarop een knop die de gegevens van het form netjes uitlijnt in een rapport. Onder de knop op het form zit de volgende code:

Private Sub Knop116_Click()
On Error GoTo Err_Knop116_Click
Dim strReportName As String
Dim strCriteria As String

strReportName = "rptOrder"
strCriteria = "[Ordernummer]=&Me![Ordernummer] & "
DoCmd.OpenReport strReportName, acViewPreview, , strCriteria

Ik heb dergelijke code ook op andere forms staan (voor andere rapporten uiteraard) en daar werkt het goed.
Bij de orders selecteert het afdrukvoorbeeld echter slechts een bepaalde record, ook als ik een andere record op het form geselecteerd heb.

Nu ben ik er achter gekomen dat ik de code die oorspronkelijk van het klantenform kwam iets aan most passen (aanhalingstekend weghalen) omdat bij het klantenform de Me tekst en op het Orderform de Me nummeriek is. Ben ik nog een stukje code vergeten hier of doe ik wat anders fout.
 
Met mijn code is nix fout. Met de jouwe wel. Zoek het verschil en kleur de plaatjes.
 
Ben iets verder. Het probleem ligt bij het rapport. doordat deze uit gegevens bestaat die uit meer tabellen komen dan het orderform geeft hij blanco weer. Ik heb echter bepaalde gegevens uit andere tabellen nodig. Zo wil ik de klantNAAM uit Klant ipv de klantcode uit de tabel Order weergeven. Iemand een idee hoe ik dit doe?
 
Dat is een andere vraag.
Is het oorspronkelijke probleem opgelost?
 
Hallo Honky,

maak een query waarin je de tabellen opneemt die nodig zijn.
Join (koppel) in je query de tabellen.
Sla de query op.
Baseer je rapport op de query.

Groet,

Tardis
 
@ Guus
De code werkt wel nu maar de opslossing is er dus niet.

Op basis van wat ik heb meegemaakt werkt de code van het form goed maar geeft het rapport problemen zodra ik tabellen koppel in de bron(ook dmv query) Als ik het rapport op 1 tabel baseer is er niks aan de hand. Als ik echter in de bron van het rapport gelinkte tabbellen gebruik geeft het rapport de data weer van de eerste record uit de database Andere gegevens worden weergegeven als blanco (leeg formulier dus)
 
Als je de query rechtstreeks draait, levert die dan wel meerdere gegevens op?
Zonder meer info van jouw kant is onmogelijk aan te geven waar je de mist ingaat ;)

Groet,

Tardis
 
Als je de query rechtstreeks draait, levert die dan wel meerdere gegevens op?
Zonder meer info van jouw kant is onmogelijk aan te geven waar je de mist ingaat ;)

Groet,

Tardis

Ja weet ik, alvast bedankt.

Om verder te gaan. Ik heb de query uitgetest en hij levert inderdaad maar 1 record op. Dit snap ik niet want er staan 4 orders in de database waar ik met andere formulieren vorlijk doorheenblader.
Het gaat in feite om een hoofdtabel ORDEr waar de orders instaan, maar de tabellen die er aan gelinkt zijn dienen om namen toe te voegen (klantnaam ipv nummer)

En de query is

SELECT Order.*, Product.*, Leverancier.*, Leveradres.*, Klant.*, Leverancierassortiment.*, Vervoerder.*
FROM Vervoerder INNER JOIN (Leverancier INNER JOIN ((Klant INNER JOIN Leveradres ON Klant.Klantnummer = Leveradres.Klantnummer) INNER JOIN (([Order] INNER JOIN Product ON Order.Productcode = Product.Productcode) INNER JOIN Leverancierassortiment ON (Product.Productcode = Leverancierassortiment.Productcode) AND (Order.Productcode = Leverancierassortiment.Productcode)) ON (Leveradres.LeveradresID = Order.LeveradresID) AND (Klant.Klantnummer = Order.Klantnummer)) ON (Leverancier.LeveranciersID = Order.LeveranciersID) AND (Leverancier.LeveranciersID = Leverancierassortiment.LeveranciersID)) ON Vervoerder.VervoerderID = Order.VervoerderID;
 
Laatst bewerkt:
Hallo Honky,

dat je query niet het verwachte aantal rijen oplevert ligt waarschijnlijk aan je je joins (INNER JOIN moet een RIGHT JOIN of een LEFT JOIN zijn).
Moet je even zelf proberen uit te vogelen.

Groet,

Tardis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan