Toon posts:

[access] query results in subform

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een bibliotheek te maken in access. Daarin zite en zoekfunctie. Deze werkt prima, alleen ik wil de query resultaten weer in een subform hebben dat in het zoekformpje zit. In de subform staat bij record source de volgend regel:
SELECT [Boekenzoek Query].[titel], [Boekenzoek Query].[auteur], [Boekenzoek Query].[onderwerp], [Boekenzoek Query].[uitgever], [Boekenzoek Query].[ISBN nummer], [Boekenzoek Query].[jaar], [Boekenzoek Query].[sectie], [Boekenzoek Query].[kamer] FROM [Boekenzoek Query];

De resultaten komen echter niet in mijn subform maar gewoon als een pop up wanneer ik op 'zoek' druk...

wat doe ik fout?

[ben idd een beginner :)]

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 13-08 21:01
Iedereen is beginner geweest! ;)

Ik zou eerst willen weten voor ik verder ga denken:
- Wat voor velden staan er in jouw zoekform
- Welke code zit er achter de zoek-knop (daar gaat het waarschijnlijk fout)
- Is er wel een koppeling tussen het zoekform en subform

Vlinders moet je volgen, niet vangen...


Verwijderd

Topicstarter
in mijn zoekform kan ik zoeken op titel, auteur, onderwerp, jaar en sectie (afdeling waar de boeken onder vallen).

Mijn sql query ziet er als volgt uit:

SELECT [Boeken].[boekID], [Boeken].[titel], [Boeken].[auteur], [Boeken].[onderwerp], [Boeken].[uitgever], [Boeken].[ISBN nummer], [Boeken].[jaar], [Boeken].[sectie], [Boeken].[kamer], [Boeken].[trefwoorden]
FROM Boeken
WHERE ((([Boeken].[titel]) Like "*" & [Forms]![Boekenzoek]![titel] & "*")) And ((([Boeken].[auteur]) Like "*" & [Forms]![Boekenzoek]![auteur] & "*")) And ((([Boeken].[onderwerp]) Like "*" & [Forms]![Boekenzoek]![onderwerp] & "*")) And ((([Boeken].[jaar]) Like "*" & [Forms]![Boekenzoek]![jaar] & "*")) And ((([Boeken].[sectie]) Like "*" & [Forms]![Boekenzoek]![sectie] & "*"));

In mijn vorm worden dus de zoekcriteria gegeven waar de query mee werkt.

Onder de zoekknop staat de volgende code:

Private Sub zoek_Click()
On Error GoTo Err_zoek_Click

Dim stDocName As String

stDocName = "Boekenzoek Query"
DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_zoek_Click:
Exit Sub

Err_zoek_Click:
MsgBox Err.Description
Resume Exit_zoek_Click

End Sub


Volgend mij voert hij hiermee alleen de query uit. Kan ik hier in ook aangeven waar de resultaten heen moeten? Ik wil graag alle resultaten uit de tabel die de query gevonden heeft in tabel form in een subform...

  • Tinoo
  • Registratie: Januari 2005
  • Laatst online: 09-01 16:14
Tsja, das wat lastiger. Je moet eerst de recordsource van het subformulier aanpasssen in de trant van:

Form![naam hoofdformulier].[naam subformulier].Recordsource = "Select .....enz."

En vervolgens een .Requery uitvoeren.

Form![naam hoofdformulier].[naam subformulier].Requery

Zoek ook eens met google zijn vast pagina's vol over te vinden.

Verwijderd

Topicstarter
kijk, daar heb ik iets aan.
Ik heb even gezocht hier, en eens even de help file bekeken, maar ik kom er nog niet helemaal uit. De requery functie zou de query moeten verversen, dus ik heb de code onder mijn zoekknop veranderd naar het volgende:

Private Sub zoek_Click()
With Me.Subformulier_Boekenzoek_Query.Requery
End With
End Sub


Hij doet het alleen niet! hij komt niet door de debugger heen. Op de punt voor Requery vraagt ie om een Expected function or variable......

Mist er iets in mijn code?

  • Tinoo
  • Registratie: Januari 2005
  • Laatst online: 09-01 16:14
Vergeet die With, die wordt gebruikt om bijvoorbeeld meerdere controls op een formulier aan te spreken

With me
.control1.naam = "blahdieblah"
.control2.setfocus
End With

In jou geval zou alleen:

Me.Subformulier_Boekenzoek_Query.Requery

voldoende moeten zijn.

  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
Tinoo schreef op vrijdag 15 april 2005 @ 09:29:
Tsja, das wat lastiger. Je moet eerst de recordsource van het subformulier aanpasssen in de trant van:

Form![naam hoofdformulier].[naam subformulier].Recordsource = "Select .....enz."

En vervolgens een .Requery uitvoeren.

Form![naam hoofdformulier].[naam subformulier].Requery

Zoek ook eens met google zijn vast pagina's vol over te vinden.
Instellen van de Recordsource impliceert een requery, dus die hoef je niet nogmaals uit te voeren.


@Breider:
Je moet de naam van het subformlierobject in het hoofdformulier opgeven. Deze wijkt vaak af van de naam waaronder het subformulier is opgeslagen (en zichtbaar is in het databasevenster). De juiste naam verschijnt in het intellisense-lijstje na "Me." in de code van het hoofdform.
Pagina: 1