Avatar billede ferdinand.k Mester
12. august 2004 - 10:07 Der er 12 kommentarer og
1 løsning

opdatering af records

Jeg har en form som løber en række records igennem. Jeg ønsker at når brugeren vælger en ny record, skal feltet: Me.Pris opdateres... Jeg har naturligvis forsøgt med mig med:

Private Sub Form_Current()
Me.Refresh
End Sub

Dog giver dette ikke det ønskede resultat!
Avatar billede mugs Novice
12. august 2004 - 10:11 #1
Du skal sætte en betingelse på:

If Me.newrecord Then
Me.Refresh
end if
end sub

Jeg er dog ikke sikker på, at det er nok, idet Refresh opdaterer eksisterende records men tilføjer ikke nye. Hvorimod Me.Requery tilføjer poster, men stiller sig derefter på den første post.

Du kan dog gøre det med en DlookUp:

If Me.newrecord Then
Me.FELTNAVN = DLookUp funktion
end if
end sub


Se i hjælpen efter DLookUp funktionen.
Avatar billede ferdinand.k Mester
12. august 2004 - 10:16 #2
det er godt nok ikke en "ny" record, men bare en anden i tabellen af records. der er altså ikke tale om at der laves nye records...
Avatar billede madschristensen Nybegynder
12. august 2004 - 10:33 #3
Hvilken type beregning er det der skal laves i [pris] ?
Avatar billede ferdinand.k Mester
12. august 2004 - 10:38 #4
jeg har en række poster som løbes igennem. Disse poster består af en abonements-type (i form af ja/nej felter) og tilhørende kundenr, navn osv... desuden er der et pris felt som er justeret af de enkelte ja/nej felter. Dvs. at hvis ja/nej-felt1 er ja skal pris være 100, hvis ja/nej-felt2 er ja skal pris være 200 osv osv...

Når man så browser igennem de forskellige records skal den bare opdatere feltet pris!

Er det bedre forklaret?
Avatar billede madschristensen Nybegynder
12. august 2004 - 10:41 #5
Ja. Er udregningen så baseret på en vba-sub eller iif  i postkilden ?
Avatar billede ferdinand.k Mester
12. august 2004 - 10:46 #6
Når jeg klikker på Ja/Nej-felterne hedder koden noget lign.:
(dette virker helt perfekt, men kun når der klikkes i felterne, hvilket der jo ikke gøres når man bare browser igennem alle records...)

Private Sub Kat_A1_Click()
If Kat_A1 = -1 Then
Pris = DLookup("[Pris_A1]", "Priser")
Else: Pris = 0
End If
End Sub

Udregningen skal helst baseres på en vba-kodestump...
Avatar billede madschristensen Nybegynder
12. august 2004 - 10:55 #7
Så laver kan du gøre sådan her:

sub form_current()
call kat_a1_click
end sub
Avatar billede madschristensen Nybegynder
12. august 2004 - 11:02 #8
Form_Current():
The Current event occurs when the focus moves to a record, making it the current record, or when the form is refreshed or requeried.

Du kan derfor lave din beregninger her. Det kan godt være, at den er lidt mere kompleks end eksemplet oven over ;O)
Avatar billede ferdinand.k Mester
12. august 2004 - 11:09 #9
Den går ikke. Jeg har 5 ja/nej felter og det er vilkårligt hvilket felt der er afkrydset!
Avatar billede madschristensen Nybegynder
12. august 2004 - 11:12 #10
Bare lidt mere komplekst...

sub form_current()
If kat_A1.checked=true then
  ... et eller andet...
Else
  If kat_A2.checked=true then
    ... noget andet...
  else...
....
...

End Sub
Avatar billede ferdinand.k Mester
12. august 2004 - 11:14 #11
tja...  det er muligt... kigger lige på det!
Avatar billede ferdinand.k Mester
12. august 2004 - 11:30 #12
helt i verdensklasse!

Private Sub form_current()

If Kat_A1 = -1 Then
    Pris = DLookup("[Pris_A1]", "Priser")

ElseIf Kat_A2 = -1 Then
    Pris = DLookup("[Pris_A2]", "Priser")

ElseIf ......

End If

End Sub


læg lige et svar...
Avatar billede madschristensen Nybegynder
12. august 2004 - 11:32 #13
Det gør jeg så lige...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester