filter werkt niet, focus op volgend form

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

scw

Gebruiker
Lid geworden
5 jun 2009
Berichten
530
Goedendag,

Het volgende probleem doet zich bij mij voor:

Ik heb een form met daarop een subformulier, op hetzelfde form zit een knop naar een volgend form. Op dit volgende form zit tevens een subformulier.

In Access 2003 kan ik beide subformulieren op beide forms gewoon filteren per kolom. Echter, in Access 2007 Viewer kan ik het subformulier op het volgende form niet filteren.

Nu heb ik wat onderzoek gedaan en nu lijkt het probleem te zijn dat het volgende form, niet meer de focus heeft. Om dit op te lossen, wil ik dus dat het volgende form 'de focus krijgt', maar hoe krijg ik dit nu eigenlijk voor elkaar???

Alvast bedankt voor de hulp,

scw
 
Je geeft een object de focus met het commano SetFocus. Dus iets als: Forms!JouwForm.SetFocus zou moeten kunnen werken.
In de bijlage zie je de juiste syntaxis om te verwijzen naar verschillende objecten vanuit verschillende (sub)formulieren.
 

Bijlagen

Goedemiddag,

Helaas ben ik nog niet echt verder gekomen met dit probleem. Wat wel goed nieuws is, is dat dit de exacte omschrijving is van m'n probleem volgens mij:

http://www.mvps.org/access/forms/frm0023.htm

Maar de oplossing begrijp ik nog niet helemaal:

So either generate the SQL statement dynamically and assign that to the Recordsource of the subform using a syntax like

Code:
strSQL="Select * from sometable where"
strSQL=strSQL & " someID=" & me!IDonMainForm
Me!SubFormName.Form.RecordSource=strSQL

Dus in de recordsource van het subformulier zet ik dan bovenstaande code??

Momenteel staat er het volgende in m'n recordsource:
Code:
SELECT tblRecords.RecordID, tblRecords.Datum, tblGroepen.Groep, tblRecordSoorten.Recordsoort, tblRecords.Afhandeling, tblRecords.Status, tblNamen.Naam
FROM tblRecordsSoorten INNER JOIN (tblRecords INNER JOIN (tblGroepen INNER JOIN tblRecords ON tblGroepen.GroepID = tblRecords.Groep) ON tblNamen.NaamID = tblRecords.Afhandeling) ON tblRecordsSoorten.RecordsoortID = tblRecords.Recordsoort
ORDER BY tblRecords.Datum DESC;


Begrijp ik het goed dat ik dit dan moet vervangen met de tekst daarboven??:confused:
 
nog niet verder...

Heeft iemand hopelijk nog suggesties voor mij?? :rolleyes:

Alvast bedankt :thumb:
 
Waar is deze sql voor bedoeld? Hoofdformulier of subformulier? Want ik zie verder geen filtering waarmee je het subformulier filtert.
 
Hoi Michel,

Excuses voor de vertraging (heb de draad na enkele weken weer opgepakt). De sql staat momenteel vermeld op het subformulier. Het is overigens dus niet de bedoeling om te filteren in een query, maar ik wil gewoon kunnen filteren met de kolommen zoals dat gewoonlijk ook altijd kan. Maar op de 1 of andere manier laat Access mij nu niet meer filteren wanneer ik dit formulier zo open :confused:

Hopelijk is er nog een oplossing voor..
 
Weet iemand nog een oplossing hiervoor? Ik kan me voorstellen dat andere gebruikers dit ook tegenkomen???:confused:
 
Je moet een paar dingen uit elkaar houden. De link naar de mvps site suggereert dat je in VBA je recordsource dynamisch aanpast. Waar jij het over hebt is de property recordsource van je form.

Laat die property leeg en gebruik de genoemde code van de mvps site en zet die in het on load event van je form. Dan wordt je recrodsource property van het form dynamisch aangepast.

Het "dynamische" hier is vanwege het feit dat je het via VBA on-the-fly kan aanpassen.

Ik hoop dat het zo duidelijker is.

HTH:D
 
OK heel duidelijk, heb ik nog wel een vervolgvraagje als dat mag:

strSQL="Select * from sometable where"
strSQL=strSQL & " someID=" & me!IDonMainForm
Me!SubFormName.Form.RecordSource=strSQL

Ze hebben het naar mijn idee een beetje onduidelijk neergezet:

strSQL="Select * from sometable where"
strSQL=strSQL & " someID=" & me!IDonMainForm

Hoe zet je het nu neer? Zo?

strSQL = SELECT * (bron tabel) WHERE

En dan vervolgens "someID", die heb ik wel op het subform, maar ik heb geen " ID on Main Form" ???
 
Code:
strSQL="Select * from sometable where"
strSQL=strSQL & " someID=" & me!IDonMainForm
Voor "sometable" vul je jouw tabel naam in.
Voor "someID" vul je de naam in van het veld die de sleutel is van je tabel.
Voor "me.IDonMainForm" vul je de naam in van je control op het form waarin het id staat. Dat kan een textbox zijn maar ook een combobox.

Als je er niet uitkomt hoor ik het wel.

HTH:D
 
OK dan,

Hij geeft nu een runtime error 2424.

The expression you entered has field, control, or property name that the database can't find.

Ik heb hem nu zo:

strSQL = "Select * from tblAntwoorden where"
strSQL = strSQL & " AntwoordID=" & Me!txtAntwoordID
Me!frmSubAntwoorden.Form.RecordSource = strSQL

Vervolgens opent die de VBA editor en arceert:
strSQL = strSQL & " AntwoordID=" & Me!txtAntwoordID

Maar beide kloppen, de control heet txtAntwoordID en de controlsource daarvan is AntwoordID (uit de tabel dus) :confused::confused:
 
Je wilt dus de recordsource van je subform aanpassen en de txtAntwoordID staat waarschijnlijk op het hoofdform.
Als dat zo is dan pak je het verkeerd aan.

De recordsource van je subform die set je in het property veld rowsource="Select * from tblAntwoorden"

Open het hoofdform en klik op het subform. Ga naar de properties en pas de "Link Child Fields" en "Link Master Fields" aan. Het kan zijn dat beide AntwoordID is. Je hoofd en je subform zijn nu gekoppeld. Je hoeft nu verder geen queries aan te passen. Access zorgt voor de rest.

Of post even een voorbeeld database.

HTH:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan