Hej! Får den tyvär inte att funka... Parent retunerar ett form objekt. Därför får du ingen intelisesn. Det fungerade!!! Till viss del bara tyvärr, men jag tror det är en bra bit på väg. Det är ju det jag sagt hela tiden. Att du inte lyssnar på mig. Hej! Jag syftade på att jag redan i första inlägget identifierade problemet: Jag tackar så mycket för ditt svar. Jag blev lite frustrerad när det första ordet som du skrev dök upp: "intellises" och jag fick SJU träffar på nätet I HELA VÄRLDEN och fattade inte ett dyft av vad det kunde betyda... Misstänkte själv problemet från början men får erkänna nu när man läser det i efterhand att jag skrev det alldeles för otydligt. Skall ju stavas: intellisenseList Box som skall uppdateras (requery)
Jag har en text box i ett subformulär (test Sales sub offered kit) där man skriver i en rabattprocent. Efter detta vill jag uppdatera en list box(OfferedKitIsNotOK) i huvudformulärets fot(formfooter).
Har försökt på många sätt men lyckas inte få "länken" till listboxen att fungera tillfredsställande.
Mvh Anders.Sv: List Box som skall uppdateras (requery)
Me.Parent.OfferedKitIsNotOK.Requery
Tänk på att posten måste vara sparad innan requqry har någon effekt. KAn det var det som strular?
Sv:List Box som skall uppdateras (requery)
VBA koden ser ut som följer:
Private Sub SalesDiscount_AfterUpdate()
If [SalesDiscount] > 1 Then
[SalesDiscount] = [SalesDiscount] / 100
End If
Me.Parent.OfferedKitIsNotOK.Requery
End Sub
Misstänker starkt att det är "Me.Parent.OfferedKitIsNotOK.Requery" som är felet, pga, att när du skiver in Me. så kan man får man upp en listruta där du kan välja parent, men efter du skrivit in nästa punkt och skall välja OfferedKitIsNotOK så finns inte denna som val.
Salesdiscount heter textboxen, som ingår i en fråga där fler parametrar ingår.
OfferedKitIsNotOK finns i en annan fråga om hämtar sin information från den uppdaterade frågan...
Har jag gjort något fel här?? Innebär detta jag gjort att posten är sparad eller inte?
Sv: List Box som skall uppdateras (requery)
Eftersom din kod körs när kontrollen uppdateras har ännu ej posten den är bunden till sparats.
Posten sparas i Form_AfterUpdate() händelsen.
Du kan lösa detta antingen genom att tvinga access att spara posten efter att man redigerat i rutan eller låta uppdateringen sek när posten sparas.
Om du vill ha intellises, skriver du:
Private Sub SalesDiscount_AfterUpdate()
Dim form as Form_NamnetPåDinFörälder
If [SalesDiscount] > 1 Then
[SalesDiscount] = [SalesDiscount] / 100
End If
Set form = Me.Parent
form.OfferedKitIsNotOK.Requery
End Sub
Sv:List Box som skall uppdateras (requery)
Private Sub SalesDiscount_AfterUpdate()
Dim Form As [Form_test Sales]
If [SalesDiscount] > 1 Then
[SalesDiscount] = [SalesDiscount] / 100
End If
Set Form = Me.Parent
Form.OfferedKitIsNotOK.Requery
End Sub
Av någon anledning uppdateras OfferedKitIsNotOK för sent! Om man ändrar på en rad uppdaters den först efter att man uppdaterat ytterligare en rad av SalesDiscount. Det spelar dock ingen roll om man uppdaterar den med samma värde eller nytt värde.
Försökte med en annan lösning, men tydligen är det så att det inte sparats innan jag kör frågan...
Mvh Anders
Sv: List Box som skall uppdateras (requery)
Du måste alltså tvinga access att spara din post efter att du redigerat den. Dett kan du göra med Refresh:
Private Sub SalesDiscount_AfterUpdate()
If [SalesDiscount] > 1 Then
[SalesDiscount] = [SalesDiscount] / 100
End If
End Sub
Refreshmetoden läser igentligen om den aktuella posten från databasen. Men den sparar den först.
När din post sparas anropas afterupdate händelsen. Det är här du kan läsa om datakällan:
Private Sub Form_AfterUpdate()
Dim Form As [Form_test Sales]
Set Form = Me.Parent
Form.OfferedKitIsNotOK.Requery
End Sub
Det borde lösa ditt problem.
Sv:List Box som skall uppdateras (requery)
Löste det på ett annat sätt för att tvinga den att spara...
Private Sub SalesDiscount_AfterUpdate()
Dim Form As [Form_test Sales]
If [SalesDiscount] > 1 Then
[SalesDiscount] = [SalesDiscount] / 100
End If
Me.Refresh '<--- Här tvingas ändringen att spara innan jag uppdaterar...
Set Form = Me.Parent
Form.OfferedKitIsNotOK.Requery
End Sub
Men jag gillar inte när någon skriver att jag inte lyssnar när man tidigare inte nämnt eller skrivit ngt om hur man gör eller vad kommandot kanske skulle kunna heta, och i samma svar säger att man inte lyssnar. Jag letade mig halvt fördärvad efter vad det kunde heta innan man skriver vad kommandot heter. Dessutom i sista svaret står bara vad det kan heta men inte var det skall stå!
Ursäkta mina hårda ord, men när man skriver i ett sådant här forum, efter hur man skall göra så är det inte för att det är kul utan för att man inte kan, eller inte hittar felet, och behöver hjälp.
Mvh Anders
Sv: List Box som skall uppdateras (requery)
<b>
Tänk på att posten måste vara sparad innan requqry har någon effekt. KAn det var det som strular?
</b>
Jag tycker intoutionen då säger att du borde ställa en uppföljande fråga som lyder: Hur sparar jag en post. Det var detta som jag tolkade att du inte lyssnade på vad jag skrev. Nästintil ignorera det och sökte egna problem.
Detta trots att jag har mer än tre års yrkesverksam erfarenhet innom utveckling i Access.
Men jag missade själv att lägga in anropet i min senaste kod vilket skulle vara:
Private Sub SalesDiscount_AfterUpdate()
If [SalesDiscount] > 1 Then
[SalesDiscount] = [SalesDiscount] / 100
End If
Me.Refresh
End Sub
Private Sub Form_AfterUpdate()
Dim Form As [Form_test Sales]
Set Form = Me.Parent
Form.OfferedKitIsNotOK.Requery
End Sub
Men jag tycker detta har varit en bra övning för dig. Du har lärt dig finna svaret själv med en ledtråd att metoden hete refresh.
Sv:List Box som skall uppdateras (requery)
Jag behövde hjälp med vad metodens namn för att kunna lösa problemet.
Jag tackar ändå och ser att du redan varit inne på mitt nästa problem! Och där har jag varit mycket tydligare om problemet.
Mvh Anders
Ps. Detta är första gången jag använder Access och det är ett exjobb som skall vara klart om ca sex veckor inclusive dokumentering osv... Ds.Sv: List Box som skall uppdateras (requery)
Borde ge några fler träffar nu.