RecordSource

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Situatie:
combobox op onafhankelijk formulier bepaalt welke query de source van het te openen formulier gaat worden

Voorbeeld:
combobox met keuzes: man / vrouw
man --> opent formulier met alle gegevens van de mannelijke deelnemers (query: Q_man)
vrouw --> opent formulier met alle gegevens van de vrouwelijke deelnemers (query: Q_vrouw)

probleem:
ik weet dat ik zo'n Me.recourdSource kan ingeven, maar ik kan er precies niet goed aan uit waar ik dat moet doen. Bij laden formulier gaat het niet, want dan vraagt hij bij elk nieuw record naar de parameters (omdat het oorspronkelijke formulier gesloten wordt bij het openen van het formulier met de resultaten).

iemand die hier meer verstand van heeft?
 
In plaats van het oorspronkelijke formulier te sluiten (het formulier waar je de query selecteert), is het misschien handiger het formulier te verbergen (Me.Visible = False) op het moment dat je het tweede formulier opent. Je eerste formulier blijft dan wel actief zodat je vanuit je tweede formulier kunt verwijzen naar de stand van je combobox en dus naar de source van je tweede formulier.
 
Dat zou idd wel n goeie oplossing zijn, moest het niet zo zijn dat ik voor andere toepassingen echt genoodzaakt ben het formulier te sluiten...

is er nog een andere mogelijkheid?
 
Wanneer moet je eerste formulier gesloten worden?

Ik zit gewoon even te brainstormen, maar misschien zou je het volgende kunnen doen:
- in het eerste formulier selecteer je man/vrouw;
- vervolgens open je het tweede formulier en verberg je het eerste;
- bij de programmacode voor het laden van het tweede formulier sla je de waarde van de combobox op in een variabele;
- op basis van de variabele stel je de recordsource van je tweede formulier in;
- als dat gebeurd is sluit je het eerste formulier vanuit het tweede formulier.

Ik heb geen idee of het werkt, maar het is wel het proberen waard lijkt me. Mocht je er echt niet uitkomen, wil ik er ook wel naar kijken als je je bestand als bijlage meestuurt.
 
Goede brainstormsessie denk k :-) Zo had ik het zelf nog nooit bekeke :)
Kga het meteen uitproberen, je hoort er nog van!

Bedankt alvast!
 
Ik krijg het dus niet gefixt :(

bestaat er zo geen code'ke waarin ge kunt zegge: " als die combobox dat is, openForms met die Recordsource "

want dat probeer ik te krijgen, maar vind ik maar niet, ook niet adhv google :(
ik vind wel altijd Me.recordsource = Query1 bijv, maar waar en hoe ik dat precies kan verwezelijke ...

hulp = welkom / nodig :)
 
Ik heb het brainstormen maar even gelaten voor wat het is ;) en even Google geraadpleegd. Met de functie DoCmd.OpenForm moet je een heel eind kunnen komen. Je kunt aan deze functie nl. argumenten meegeven waarmee het tweede formulier geopend moet worden.

In je eerste formulier zou je dan een code zoals deze kunnen gebruiken:
Code:
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim ComboBoxWaarde As String

    stDocName = "Formulier2"
    ComboBoxWaarde = Me.ComboBox
    
    DoCmd.OpenForm stDocName, , , stLinkCriteria, , , ComboBoxWaarde

En in het tweede formulier deze code bij het openen van het formulier:
Code:
Private Form_Open(Cancel As Integer)
    If Len(Nz(Me.OpenArgs, vbNullString)) > 0 Then
        Me.RecordSource = Me.OpenArgs
    End If
End Sub

Je zult bovenstaande voorbeelden van code wel moeten aanpassen naar je eigen situatie en ik heb niet getest of het werkt ;), maar ik hoop wel dat je hiermee weer een stapje verder komt.

Ik heb een deel van de code van deze site gehaald.

Succes!
 
Hey!
sorry voor het late antwoord, heb zelf hier en daar ook nog wat gesnuffeld en aangepast...

Ik heb jouw oplossing geprobeerd.. ging helaas ook niet.

Ik heb nog steeds geen idee hoe dit moet lukken :(
 
Laat het idee van losse formulieren openen achterwege.
Zet je keuzelijst in de kop van je formulier.
Baseer je formulier op een query waarin je de waarde van je keuzelijst als conditie meestuurt.
In de Bij Klikken gebeurtenis van je formulier zet je

Me.Requery

Et voila.

Tardis
 
Je kunt het op de volgende manier ook doen:
Zet in de AfterUpdate van je combobox de volgende code:

Code:
    DoCmd.OpenForm "frm_Formuliernaam", acDesign, , , , acHidden
    Forms!frm_Formuliernaam.Form.RecordSource = Me.cbo_QuerySelectie.Value
    DoCmd.Close acForm, "frm_Formuliernaam", acSaveYes
 
Code:
DoCmd.OpenForm "frm_Formuliernaam"
Forms!frm_Formuliernaam.filter ="Geslacht='" & Me.cbo_QuerySelectie.Value & "'"
Forms!frm_Formuliernaam.filteron = true

Kan het niet met zoiets al dit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan