Oprettet man. d. 30. august 2010 kl. 12:18:00

mpd
mpd (9.465 point. Point ude: 0)

Rette alle poster i fortløbende formular

Jeg har en fortløbende formular, der har et felt (ja/nej) - chkFiltre.
Når jeg opdaterer feltet til "true" indsætter værdien fra et felt (txtServiceID) i en tabel - tblFiler_bestilles.

Jeg kunne godt tænke mig en funktion, hvor jeg kunne opdatere alle chkFiltre felter i formularen og samtidig indsætter ServiceID i tabellen.

Jeg har kigget på flere mulige løsninger på eksperten, men har ikke kunnet få dem til at virke.

Skrevet man. d. 30. august 2010 kl. 13:14:02| #1

mugs
mugs (162.407 point)
DoCmd.GoToRecord acForm, "DIN FORM", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "UPDATE tblFiler_bestilles Set ServiceID =" & Me.ServiceID
Loop

Skrevet man. d. 30. august 2010 kl. 13:38:29| #2

mugs
mugs (162.407 point)
Vi skal da have en  "gå til næste post" med:

DoCmd.GoToRecord acForm, "DIN FORM", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "UPDATE tblFiler_bestilles Set ServiceID =" & Me.ServiceID
DoCmd.GoToRecord acForm, "DIN FORM", acNext
Loop

Skrevet man. d. 30. august 2010 kl. 13:56:06| #3

mpd
mpd (9.465 point)
Hej Mogens

Det virker ikke helt. i tblFilter_bestilles er der kun eet felt - nemlig feltet med Service_ID.

Det betyder, jeg skal indsætte en post med service_ID, hvis jeg sætter chkFiltre = true og hvis jeg vælger at slette skal posterne i tblFilter_bestilles slettes!

Jeg har tilrettet til dette, men den spørger om jeg vil opdatere en post og derefter løber den i en uendelig løkke, hvis jeg svarer ja.

Det skal lige siges, at jegh har placeret koden på en ubundet ja/felt ved navn Afkrydsningsfelt517

DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
    Do Until Me.NewRecord = True
    Me.chkFiltre = True
    DoCmd.RunSQL "update tblFilter_bestilles Set Service_ID =" & Me.txtService_ID
    Loop

Skrevet man. d. 30. august 2010 kl. 13:59:44| #4

mpd
mpd (9.465 point)
Det virker heller ikke.

Den sætter heller ikke poster ind i tblFilter_bestilles

Skrevet man. d. 30. august 2010 kl. 14:45:01| #5

mugs
mugs (162.407 point)
Den uendelige løkke skyldes, at du ikke får fomrmularen til at gå til næste post.
Spørgamålet om du vil opdatere kan vi komme udenom, ved at indsætte en false til Warnings.

Docmd.SetWarnings False
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "update tblFilter_bestilles Set Service_ID =" & Me.txtService_ID
DoCmd.GoToRecord acForm, "DIN FORM", acNext
Loop
Docmd.SetWarnings True

Huskm altid at sætte warnings til true igen, ellers forbliver de frakoblede i hele applikationen.

Skrevet man. d. 30. august 2010 kl. 14:45:48| #6

mugs
mugs (162.407 point)
Prøv evt. at indsætte koden i en kommandoknap.

Skrevet man. d. 30. august 2010 kl. 14:58:44| #7

mpd
mpd (9.465 point)
Hej igen

Jeg får en fejl, når koden når til sidste post 'Error 2046' - kommandoen eller handlingen "GåTilPost" er ikke tilgængelig nu!

Det er vel noget med, der skal en errorhandler ind, der afslutter, når man når til sidste post.

Har i øvrigt ændret lidt i SQL, så den hedder:

DoCmd.RunSQL "INSERT INTO tblFilter_bestilles(Service_ID) VALUES('" & Me.txtService_ID & "');"

Den virker nu.

Kan du lave errorhandleren?

Skrevet man. d. 30. august 2010 kl. 15:10:12| #8

mpd
mpd (9.465 point)
Tak for hjælpen Mugs

Fik selv lavet det, så det nu virker:

On Error GoTo Errorhandler
    DoCmd.SetWarnings False
   
    DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
    Do Until Me.NewRecord = True
    Me.chkFiltre = True
    DoCmd.RunSQL "INSERT INTO tblFilter_bestilles(Service_ID) VALUES('" & Me.txtService_ID & "');"
    DoCmd.GoToRecord acForm, "frmBestilling_filtre", acNext
    Loop
    DoCmd.SetWarnings True
   
Errorhandler:
    If Err.Number = 2046 Then
    MsgBox "Handlingen udført"
    Exit Sub
End If

Skrevet man. d. 30. august 2010 kl. 15:10:43| #9

mugs
mugs (162.407 point)
Hvornår opstår fejlen?

Vi har jo lavet en betingelse:

Do Until Me.NewRecord = True

at den kun skal udføre løkken indtil NewRecord er = True.

Men prøv denne:

Docmd.SetWarnings False
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
On error GoTo errorhandler
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "INSERT INTO tblFilter_bestilles(Service_ID) VALUES('" & Me.txtService_ID & "');"DoCmd.GoToRecord acForm, "DIN FORM", acNext
Loop
Docmd.SetWarnings True
Errorhandler:
If err.Number  = 2046
Then Exit Sub
End If

Skrevet man. d. 30. august 2010 kl. 15:26:36| #10

mugs
mugs (162.407 point)
Tak for point.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Link til et dokument

Oprettet den 10. februar 2012 kl. 14.15
omn giver 60 point for svar | Giv et svar »

Formular med flere paramtre

Oprettet den 9. februar 2012 kl. 16.48
stuegnu giver 100 point for svar | Giv et svar »

Kodemodul ???

Oprettet den 8. februar 2012 kl. 17.05
olejohn giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger