keuzelijst met invoerveld een rapport aanmaken

Status
Niet open voor verdere reacties.

AdvB

Gebruiker
Lid geworden
1 jul 2021
Berichten
48
Het lukt mij niet.

Ik heb de volgende keuzelijst met invoerveld:

SELECT qryAlleOrgmetLok.Organisatienaam, qryAlleOrgmetLok.LokNaamatie, qryAlleOrgmetLok.LokatieID
FROM qryAlleOrgmetLok
ORDER BY qryAlleOrgmetLok.Organisatienaam, qryAlleOrgmetLok.LokNaamatie;

ik wil zoeken op "Organisatienaam" en dan een Lokatie kiezen (per organisatie kunnen meerdere lokaties bestaan)

Na bijwerken heb in de volgende [Ingesloten macro]:
Rapport openen/Where- voorwaarde = =[VHM_Lok]=[Formulieren]![frmVHsubformRapExtern]![LokatieID]

Dan krijg ik de melding:
Het automatiseringsobject VHM_Lok bevindt zich niet in het object

Ik weet niet precies wat de melding aangeeft maar het veld [VHM_Lok] is opgenomen in het rapport wat de macro aanroept.

Wat doe ik fout ?
 
Heb je het veld wel in je rapport zitten? Zo te zien zit VHM_LOK er niet bij. Tenminste: dat zegt de melding. En is LokatieID wel de afhankelijke kolom?
 
Als ik de 2e "="-teken weghaal wordt rapport wel geopend maar er worden buiten de vaste velden geen gegevens getoond.
Het veld VHM_LOK is opgenomen in rapport
LokatieID is de afhankelijke kolom, zie bijlage.
Bekijk bijlage 362931

Ik kom dus wel iets verder maar nog steeds niet bruikbaar
 
De bijlage is niet te bekijken; die moet je toevoegen via de knop <Ga geavanceerd>. Uit je verhaal kan ik helaas verder niet zoveel opmaken.
 
Ik had in mijn vorige bericht een <afbeelding> toegevoegd, nu hetzelfde bestand als bijlage.
Ik hoop dat dat wat meer duidelijk maakt
 

Bijlagen

  • Acces afhankelijke kolom.JPG
    Acces afhankelijke kolom.JPG
    64,6 KB · Weergaven: 23
Ik had in mijn vorige bericht een <afbeelding> toegevoegd.
Dat werkt tegenwoordig alleen maar als je hem invoegt via <Ga geavanceerd>. Dus niet meer in het tekstvak <Snel reageren>. Joost mag weten waarom dat is veranderd, en waarom HelpMij het maar niet repareert..... Er zijn toch genoeg mensen ondertussen die zich er het schompes aan ergeren :).
 
nogmaals een poging on bijlage te posten

..
 

Bijlagen

  • Acces afhankelijke kolom.JPG
    Acces afhankelijke kolom.JPG
    64,6 KB · Weergaven: 17
Hij was in de vorige al zichtbaar, maar die zag ik nog niet :). Dus dat ziet er normaal uit. In beide plaatjes :). Dus aan de query ligt het niet, ook al kan de code een stuk korter:
PHP:
SELECT Organisatienaam, LokNaamatie, LokatieID FROM qryAlleOrgmetLok ORDER BY Organisatienaam, LokNaamatie
.
maar dat is dus het probleem niet. Dat ligt toch echt aan je rapport. Wat is daarvan de Recordsource?
 
bij recordbron staat: qryVHmuttbvfacturatieDagenOngelijkNul (en dat is dezelfde Query waarmee het rapport wordt gegenereerd voor alle lokaties en dan is er wel een gevuld rapport te zien.
bij selectie staat: [VHM_Lok]=[Forms]![frmVHsubformRapExtern]![LokatieID]

(en nogmaals gecheckt of [VHM_lok] ook in rapport staat )
 
De naam van een query geven als antwoord op mijn vraag gaat natuurlijk niet helpen. Van mij mag die query ook "Wat een pokkeweer was het, he" heten, dan doet het rapport het ook nog steeds prima. Of niet. Ik wil natuurlijk de SQL code zien. En het criterium hádden we al, dus dat voegt ook al niets toe :).
 
ik had je bericht nog niet gezien, vandaar de late reactie.
Maar ik zou niet weten hoe ik bij de SQL -code kan komen/vinden ?

als ik echter bij selectie [VHM_Lok]=123 (of elk ander lokatienummer) ingeef werkt het rapport wel.
het lijkt er dus op dat "[Formulieren]![frmVHsubformRapExtern]![LokatieID]" dat nummer niet juist teruggeeft in de oorspronkelijke selectie.
 
Elke query heeft een SQL bron die je kan bekijken als je vanuit het Ontwerpscherm de optie SQL pakt. Als je het criterium via de knop <Functie Opbouwen> hebt toegevoegd, zou de syntax ook goed moeten zijn. Het rapport openen doe ik dus nooit met macro's (eigenlijk niks, tenzij ik lui ben en de knop maar één actie hoeft uit te voeren). De code om een rapport met een specifieke waarde te openen is namelijk heel simpel te programmeren.
Simpel voorbeeldje: ik heb een (doorlopend) formulier met het veld factuurnr. Als ik daar op klik, open ik het rapport rptFacturen met het betreffende nummer. Is één regel code.

Code:
Private Sub Factuurnr_Click()
    DoCmd.OpenReport "Rpt_Facturen", acViewPreview, , "[Factuurnr]=" & Me.factuurnr
End Sub

Simpele procedure, werkt altijd. Kun je ook aan een keuzelijst hangen natuurlijk.
 
ik snap je maar ik ken geen programmeer-code/ik ben geen programmeur en probeer dus alles op te lossen wat Access standaard levert.

dit is SQL-bron van de query:

SELECT qryVHmuttbvfacturatie.VHGroepcode, qryVHmuttbvfacturatie.VHGroepomschrijving, qryVHmuttbvfacturatie.VHM_Id, qryVHmuttbvfacturatie.VHM_VHart, qryVHmuttbvfacturatie.VHM_Lok, qryVHmuttbvfacturatie.VHM_Afdeling, qryVHmuttbvfacturatie.VHM_Client, qryVHmuttbvfacturatie.VHM_startdatum, qryVHmuttbvfacturatie.VHM_einddatum, qryVHmuttbvfacturatie.VHM_spoedkosten, qryVHmuttbvfacturatie.VHrapdtm_begin, qryVHmuttbvfacturatie.VHrapdtm_eind, qryVHmuttbvfacturatie.VHrapstartdtm, qryVHmuttbvfacturatie.VHrapeinddtm, qryVHmuttbvfacturatie.VHverhuurdgper, qryVHmuttbvfacturatie.Spoedkostenbedrag, qryVHmuttbvfacturatie.Organisatienaam, qryVHmuttbvfacturatie.LokNaamatie, qryVHmuttbvfacturatie.VHartstam, qryVHmuttbvfacturatie.Omschrijving, qryVHmuttbvfacturatie.VHartLev, qryVHmuttbvfacturatie.VHGroepGlobPrijs, qryVHmuttbvfacturatie.Globaalverhuurbedrag
FROM qryVHmuttbvfacturatie
WHERE (((qryVHmuttbvfacturatie.VHverhuurdgper)<>0));
 
Aan de query mankeert niets; da's een redelijke standaard query. Het veld waarmee je wilt filteren zit er inderdaad in (daar ging het om) dus dat zou óók moeten kunnen. Dan zou het toch met zoiets moeten kunnen:
Code:
Private Sub Factuurnr_Click()
    DoCmd.OpenReport "Jouw Rapportnaam", acViewPreview, , "[VHM_Lok]=" & Me.LokatieID.Value
End Sub

Nou ben ik er niet zeker van dat dit gaat werken, want ik vertrouw je filterveld niet: dat ziet er uit als een formulierveld op basis van een tabelveld, en niet als de naam van je keuzelijst. En dat móet dus wel! ik zou eerder iets verwachten als:
Code:
    DoCmd.OpenReport "Jouw Rapportnaam", acViewPreview, , "[VHM_Lok]=" & Me.Keuzelijst57.Value

Als je de keuzelijst tenminste geen fatsoenlijke naam zou hebben gegeven. Logisch zou zijn:
Code:
    DoCmd.OpenReport "Jouw Rapportnaam", acViewPreview, , "[VHM_Lok]=" & Me.cboLokatie.Value

En het is bloedje simpel om een ingewikkelde macro om te zetten naar een logische VBA code. Als eerste haal je de ingesloten macro weg bij de gebeurtenis <Na bijwerken> (sowieso een idiote plek, maar goed, het komt dan ook bij Microsof vandaan) en dan klik je in de regel <Bij klikken> (now we're talking!). En dan kies je Gebeurtenisprocedure. En dan krijg je dus de constructie te zien die hierboven ongeveer staat, maar dan zonder de code. De juiste regel kopieer je dan en zet je tussen Sub en End Sub. En meer is het niet. Probeer het maar eens.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan