Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-16 09:28:31 - Roland Danielsson, i forum access, Tråden har 11 Kommentarer och lästs av 1156 personer

Hej !
Har ett fomulär där jag matar in uppgifter till poster i en tabell.

Vill jag ta bort poster, så gör jag det mha en kommandoknapp som kör rutin:

Private Sub cmdDelete_Click()
Response = MsgBox("Vill du verkligen permanent ta bort uppgiften ?", vbYesNo, "VÄLJ ALTERNATIV !!")
If Response = vbYes Then ' User chose Yes.
On Error Resume Next
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, "Uppgifter", acSaveNo 'stäng formuläret
End Sub

Mitt problem uppstår när jag ”tar bort”(raderar) den sista posten (sista posten bland flera poster eller om jag vill radera den enda posten som finns)
eftersom programmet alltid försöker visa nästa post när man raderat en post.

Det som sker vid radering av sista posten är följande:
Min inmatningsruta för ny post visas tillsammans med en meddelanderuta med texten:
” ! Microsoft Access Du håller på att ta bort 1 post(er). Klicka på ja om posterna skall bort. Du kommer inte att kunna ångra borttagningen.” Här finns två alternativ: JA eller NEJ.

-Väljer jag JA så raderas posten och formuläret stängs.
- Väljer jag NEJ så raderas inte posten och formuläret stängs.

Problemet är alltså meddelanderutan som access poppar upp. Jag har ju redan före jag utför raderingskommandot frågat om posten skall raderas. Jag vill alltså inte att systemet frågar det en gång till bara för att det är sista posten som raderas.
Det verkar så förvirrande att användaren först efter att ha svarat ja på min raderingsfråga får en ny raderingsfråga av systemet.

Min önskan är att om användaren svarat ja på min fråga så raderas posten och nästa post visas. Finns ingen nästa post så vill jag bara radera posten och stänga formuläret.

Hur skall jag slippa den överflödiga frågan??

Orsaken till att jag vill ställa frågan före raderingen är den att systemets fråga om posten skall tas bort eller ej visas enbart för den sista posten.

Tacksam för svar.


Svara

Sv: Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-16 09:44:24 - Ann Kapborg

DoCmd.SetWarnings False

/Ann


Svara

Sv:Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-16 10:43:00 - Roland Danielsson

Tack för ditt svar! Det var precis vad jag sökte efter.
Tack också för att svaret kom så snabbt.

/Roland


Svara

Sv: Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-18 13:10:59 - Andreas Hillqvist

DoCmd är macro instruktioner. Ingen "vacker" lösning. Om det finns något man kallar "riktiga" utvecklar brukar dessa vända sig till SQL frågor för att ta bort poster.

Private Sub cmdDelete_Click()
Dim strSQL As String
Dim db As DAO.Database
On Error Goto cmdDelete_Click_Err
    Select Case MsgBox("Vill du verkligen permanent ta bort uppgiften?", vbYesNo, "Ta bort post")
    Case vbYes ' User chose Yes.
        strSQL = "DELETE FROM tabellNamn" & vbCrLf & _
                 "WHERE primärNyckel=" & me("primärNyckel")
        Set db = CurrentDB
        db.Execute strSQL
    End Select

cmdDelete_Click_Exit:
    Exit sub

cmdDelete_Click_Err:
    Select Case Err.Number
    Case Else
        MsgBox Err.Description, vbCritical, Err.Source
        Resume cmdDelete_Click_Exit
    End Select

End Sub


Jag tycker det är lite grovt att stänga av alla varningar för att man vill ta bort en post.


Svara

Sv:Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-19 09:31:38 - Roland Danielsson

Tack för ditt svar!
Håller med om att SQL-lösningen är "rejälare".
Är tyvärr inte så hemmastadd i metoderna.
Har kört din lösning med nedanstående resultat:

Kör cmdDelete.
Frågan om jag vill ta bort posten visas.
Jag svarar ja. Därefter händer inget mer utan formuläret står kvar och visar fortfarande borttagna postens värden.
Jag använder då navigationspilarna för att gå till nästa post varvid det dyker upp en meddelanderuta som visar ”Posten är borttagen” och en OK knapp.
Jag klickar på OK varefter endel av fälten i formuläret ersätts med #Borttaget.
Jag väljer navpil framåt igen och nästa post visas.
Jag väljer navpil bakåt för att se om den borttagna posten verkligen är borttagen, men får då ett felmeddelande: ”En post i tabellen ’uppgifter’ har raderats av en annan användare”.
Jag väljer felmeddelanderutans avslutaknapp och stänger formuläret.
Öppnar formuläret på nytt och bläddrar med navpilarna bland posterna och konstaterar att borttagen post är borta.

Vad som verkar saknas är en uppdatering av tabellen efter borttagningen så att posten verkligen försvinner även ur tabellen.

Raderingen har alltså utförts men
Hur får jag rutinen att visa nästa post om sådan finns eller annars stänga formuläret.?

Tacksam för svar
/Roland


Svara

Sv:Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-19 09:43:51 - Ann Kapborg

Visst är det bättre med SQL, om man kan det. Men...
Har uppfattningen att varningarna stängs av bara av för händelser i rutinen.
Macron är ju till för att man ska kunna göra lite perifer funktion till de vanliga funktionerna utan att vara utvecklare. Dessutom en ypperlig plattform för att gå vidare till att bli utvecklare eftersom det är logiskt att man ökar svårighetsgrad allteftersom.

/Ann


Svara

Sv: Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-19 10:58:19 - Roland Danielsson

Du har alldeles rätt Ann.
Det macro du föreslog fungerar helt ok i mitt program men nu har jag ju blivit intresserad av att se hur SQL-lösningen skulle fungera.
mvh/ Roland


Svara

Sv: Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-19 13:58:17 - Andreas Hillqvist

Du har <b>me.Refresh</b>, Vilket läser om aktuell post och <b>me.Requery</b>, vilket läser om samtliga poster i formuläret.


Svara

Sv:Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-20 07:58:49 - Roland Danielsson

Tyvärr räcker det inte med de två instruktionerna me.Refresh och me.Requery för att uppnå det jag beskrivit att jag vill åstadkomma. Jobbar vidare.
Tack i alla fall.
/Roland


Svara

Sv: Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-20 18:06:04 - Ann Kapborg

Det är bra att lära sig mer.

Nu har jag ingen kod att bidra med eftersom jag för tillfället tar mig friheten att vara soffpotatis på semestern. Tror att du måste skapa ett recordset och en querydef med de poster som ingår i frågan. Sedan kör du With recordset - skapa querydef - with querydef .. Deletekoden... End with, End with. I något läge efter deletekoden får du köra recordset.update för att få den effekt du vill ha borde rimligen vara före end with för recordset eller (soffpotatis var det ja).

Om det var för kryptiskt så får du posta igen så svarar väl jag eller någon annan :). Glad sommar!

/Ann


Svara

Sv: Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-20 19:48:31 - Andreas Hillqvist

Har hittat hur du kan lösa det.

Private Sub DeletRecordButton_Click()
Dim rs As DAO.Recordset
On Error GoTo Err_DeletRecordButton_Click

    Select Case MsgBox("Vill du ta bort aktuell post?", vbYesNo Or vbQuestion, "Ta bort")
    Case vbYes
        Set rs = Me.Recordset
        rs.Delete
    End Select

Exit_DeletRecordButton_Click:
    Exit Sub

Err_DeletRecordButton_Click:
    MsgBox Err.Description
    Resume Exit_DeletRecordButton_Click
    
End Sub


Svara

Sv:Vill slippa meddelanderuta vid radering av post.

Postades av 2005-07-21 13:21:29 - Roland Danielsson

Tack Andreas och Ann för era förslag.
Kompletterade Andreas forslag med:
Me.Refresh
Me.Requery
rs.Requery
som jag lade in efter instruktionen rs.Delete och efter det fungerade det hela ungefär som jag hoppades.

Glad sommar! mvh/Roland

ps: har redan en ny fråga, men jag skriver in den under egen rubrik: "SQL WHERE = Variabel"


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 770
27 960
271 761
476
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies