Veld update in form

Status
Niet open voor verdere reacties.

jwaque

Verenigingslid
Lid geworden
16 aug 2006
Berichten
443
In mijn formulier gebasseerd op een tabel kan ik een instelling selecteren. Via een query wordt vervolgens een lijst gegenereerd met afdelingen horende bij de instelling.
Code:
[Forms]![Opiaatkaart]![instelling]

De query werkt alleen.
Bij het wijzigen van de insteling in het formulier wijzigd de lijst bij afdeling niet. of wel de query leest niet de nieuw ingegeven instelling in.
Hoe kan ik de query? updaten.

Ik heb in het formulier bij 'na bijwerken' Me.Refresh geprobeert maar dan krijg ik 'macro me niet herkent'.
 
Ik snap nog niet helemaal wat je aan het doen bent; de code is vermoedelijk het criterium dat je in de query gebruikt? Maar wat doe je dan precies verder? Is die query de bron van je formulier? Dat zou een beetje vreemde constructie zijn, omdat het formulier zelf al een filter heeft. Of is die query de bron van een ander formulier? Leg even uit wat je precies aan het doen bent.
 
Michel alvast (wederom) bedankt voor je hulp.

Ik heb je oplossing bij vraag http://www.helpmij.nl/forum/showthread.php/675159-Aangepast-keuzevak/page2 gelezen. Helaas is mijn database niet zo mooi opgebouwd. De afdelingen tabel wordt ook door andere gebruikt en koppelt mn veel verschillende codes voor het zelfde aan elkaar (dit komt door andere programma's en kan ik niet veranderen)

Wat ik wil:
In mijn formulier het veldlocaties wil ik een locatie(was instelling) selecteren. Vervolgens kan ik in het volgende veld hierbij een afdeling selecteren. Nu wil dat de afdelingenlijst dan alleen die afdelingen komen die horen bij de reeds gekozen locatie.

als ik in een query de code zet uit mijn vraag dan krijg ik inderdaad een mooie lijst met afdelingen horende bij de locatie die in het formulier is geselecteerd. alleen in het formulier zelf krijg ik niet een 'verse' lijst.

Ik heb mijn data uit mij database gehaald en probeer hem bij te sluiten. Ik weet dat ik iets moet doen met een gebeurtenisprocedure. Bekijk bijlage helpmij update veld.zipBekijk bijlage helpmij update veld.zip

alvast bedankt voor het kijken
 
Je hebt maar één gebeurtenis nodig, en dat is deze:

Code:
Private Sub cboLocatie_AfterUpdate()
    strSQL = "SELECT Afdeling FROM Afdelingen WHERE Locatie='" & Me.cboLocatie & "'"
    Me.CboAfdeling.RowSource = strSQL
    Me.CboAfdeling.Requery
    Me.CboAfdeling = ""
End Sub
 
Geweldig octafish. dank je wel. mag ik nog een vraagje stellen?

Ik had al een code om records te kopieeren. Maar als ik die hier toepas dan kopieert hij regelmatig het eerste record en niet het huidige record. Zie jij zo snel het probleem?

Code:
Private Sub Kopiekaart_Click()

'maak een clone van recordset
With Me.RecordsetClone
'zoek huidig record in recordcloneset
    .FindFirst "Opiaatkaartnr = " & Forms![Opiaatkaart]!Opiaatkaartnr
'maak een nieuw record
    DoCmd.GoToRecord , , acNewRec

'vul de datum in nieuw record met datum uit clone+1jaar
 
    Me.Kopienr = !Opiaatkaartnr
    Me.CboAfdeling = !Afdeling
    Me.cboLocatie = !locatie
    Me.ApoAssIn = !ApoAssIn
    Me.Opiaat = !Opiaat
    Me.Memo = "kopie record"
    
    
    
   
    
End With
'niet nodig? Me.Repaint
'refresh het formulier en tabel
    Me.Refresh

    
   


       
End Sub
 
Ik denk dat het komt omdat je het de zoekwaarde niet goed ophaalt.

Code:
With Me.RecordsetClone
	'zoek huidig record in recordcloneset
    .FindFirst "Opiaatkaartnr = " & Me.Opiaatkaartnr
	'maak een nieuw record
    DoCmd.GoToRecord , , acNewRec
	'vul de datum in nieuw record met datum uit clone+1jaar
    Me.Kopienr = !Opiaatkaartnr
    Me.CboAfdeling = !Afdeling
    Me.cboLocatie = !locatie
    Me.ApoAssIn = !ApoAssIn
    Me.Opiaat = !Opiaat
    Me.Memo = "kopie record"
End With
 
Inderdaad dit werkt beter. Bedankt. Nog eentje dan tot slot.
ik kan een formulier maken om parameters in mijn query te zetten. vervolgens zet ik een rapport bij openen laad formulier. Maar op een of andere manier vraagt hij na het invullen van het formulier en openen van de query toch opnieuw naar de parameters.
Heb het gekopieerd van een eerdere database maar blijkbaar is er toch net weer iets anders.

mocht je nog een blik willen werpen. (je vorige antwoord is hier nog niet in verwerkt.)
 

Bijlagen

Als je routines kopieert van een andere database, dan moet je er op letten dat je alle routines ook meeneemt naar je eigen database. Een simpele manier om te controleren of je alles wel hebt, is om in je eigen routines in ieder geval Option Explicit in de algemene sectie (bovenin dus) te zetten, en vervolgens de db te comprimeren. Op die manier kom je er snel genoeg achter of alle functies wel bestaan, en of alle variabelen wel zijn gedeclareerd. Op beide vragen kun je in jouw db dus met Nee antwoorden: de variabelen kloppen niet, en je mist een functie!
Bovendien had je in je formulier waarmee je het rapport opent een verkeerde code gezet:
Code:
Private Sub OK_Click()
   Me.Visible = False
   DoCmd.OpenQuery "QrySelectafd", acViewNormal, acEdit
   [COLOR="#FF0000"]DoCmd.Close acForm, "FormSelectafd"[/COLOR]
End Sub
In de eerste regel maak je het formulier onzichtbaar, wat prima is, en in de derde regel sluit je het formulier. En als dat gesloten is, kun je uiteraard geen waarden als parameter gebruiken in het rapport.

Ik heb e.e.a. gerepareerd in het voorbeeld, want de functie fIsLoaded had je ook niet. Die heb ik dus toegevoegd. De code in de knop OK doet nu twee verschillende acties, afhankelijk of je het rapport opent of dat je het formulier zelfstandig opent.
 

Bijlagen

geweldig. thuis werkt het nu morgen op mijn werk zien in te bouwen. Wederom hartelijk dank.
 
Hartelijk dank voor de oplossing. En zeker ook dank voor de uitleg want daarmee bereik ik meer dan de oplossing alleen. Mijn complimenten
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan