Avatar billede marcus1911 Nybegynder
30. september 2004 - 14:17 Der er 23 kommentarer

Tilføje en sletteforespørgsel til en kommandoknap?

Jeg har lavet en række forespørgsler som jeg har tilknyttet nogle kommandoknapper i min form. Problemet er, at jeg ikke kan tilføje en sletteforespørgsel. Forespørgslen fungerer som den skal, men det er ikke muligt at tilknytte den til en kommandoknap. Hvad er grunden til dette?

Hvis jeg havde en sådan knap ville jeg selvfølgelig gerne sætte
en adgangskode på den..

Håber nogle kan hjælpe.
Avatar billede jensen363 Forsker
30. september 2004 - 14:24 #1
Til inspiration :

Private Sub Sletknap_Click()
Dim msg, Style, Title, Ctxt, Response
Dim strSQL As String
Dim db As DAO.Database

    Set db = CurrentDb()

    msg = "Du har aktiveret Slettefunktionen. Vil du fortsætte ?"
    Style = vbYesNo + vbCritical + vbDefaultButton2    ' Define buttons.
    Title = "Slet Data"    ' Define title.
    Ctxt = 1000    ' Define topic
    Response = MsgBox(msg, Style, , Title, Ctxt)
   
    If Response = vbYes Then    ' User chose Yes.
   
    strSQL = "DELETE *.* FROM tblData"
       
        db.Execute strSQL
   
   
    Else
   
    MsgBox ("Du har valgt at afbryde Slettefunktionen.")
   
    End If

End Sub
Avatar billede sjap Praktikant
30. september 2004 - 14:34 #2
Du kan bare vælge en anden forespørgsel, og efterfølgende selv gå ind og rette koden for knappens VedKlik-hændelse. Det skulle virke og er da rimeligt enkelt.
Avatar billede sjap Praktikant
30. september 2004 - 14:43 #3
Kodeord kan f.eks. laves i knappens VedKlik-hændelse:

If InputBox("Indtast kodeord", "AUTHORIZED PERSONNEL ONLY!") = "kontrolkodeordnr12345" Then
    DoCmd.OpenQuery "NavnPåSletteforespørgsel"
End If
Avatar billede marcus1911 Nybegynder
30. september 2004 - 20:44 #4
Okay, jeg har lidt problemer med at ændre den on click event procedure så den passer til min database.. Min databaserapport hedder bare "database" og min tabel hedder også "database". Når jeg klikker på knappen sker der intet.
Avatar billede marcus1911 Nybegynder
30. september 2004 - 20:49 #5
hvad svarer din "DAO.Database" til? Jeg får compile error på denne.
Avatar billede marcus1911 Nybegynder
30. september 2004 - 20:58 #6
Når jeg sletter "Dim strSQL As String, Dim db As DAO.Database" når jeg ned til FROM sætningen hvor jeg får en fejl. Skal navnet på min tabel stå her?
Avatar billede sjap Praktikant
30. september 2004 - 21:34 #7
I VBA editoren skal du vælge menuen Tools/References og her skal du så sætte et flueben i "Microsoft DAO 3.6 Object Library" (der kan stå et andet nummer end 3.6). Så skulle det virke.
Avatar billede marcus1911 Nybegynder
30. september 2004 - 21:39 #8
Okay, det er fint nu. Problemet er bare at nu slettede den hele min tabel??
Avatar billede sjap Praktikant
30. september 2004 - 21:55 #9
Var det ikke det, der var hensigten?
Avatar billede marcus1911 Nybegynder
30. september 2004 - 22:00 #10
Nej, jeg ville kunne slette en enkelt titel. Sådan noget med et vindue der siger "Slet titel", og så skriver man en titel og så bliver den slettet..
Avatar billede marcus1911 Nybegynder
30. september 2004 - 22:05 #11
Kan man ikke laven en msgbox efter "If Response = vbYes Then"?
Avatar billede sjap Praktikant
30. september 2004 - 22:06 #12
Øjeblik, så kommer der en lille udvikling af mit oprindelige forslag.
Avatar billede sjap Praktikant
30. september 2004 - 22:12 #13
Erstat hele dit program med nedenstående:

Private Sub Sletknap_Click()
Dim strSletTitel As String
Dim strSQL As String
Dim db As DAO.Database

Set db = CurrentDb()

If InputBox("Indtast kodeord", "AUTHORIZED PERSONNEL ONLY!") = "kodeord" Then
    strSletTitel = InputBox("Titel, der skal slettes", "SLET titel")
    If strSletTitel <> "" Then
        strSQL = "DELETE *.* FROM tblData WHERE Titel='" & strSletTitel & "';"
        db.Execute strSQL
    End If
End If

End Sub
Avatar billede marcus1911 Nybegynder
30. september 2004 - 22:19 #14
Tusind tak, det virker perfekt nu. 60 point til dig.
Avatar billede sjap Praktikant
30. september 2004 - 22:22 #15
Det var så lidt. :0)
Avatar billede sjap Praktikant
30. september 2004 - 22:24 #16
Giv også lidt til jensen363 - Han kom trods alt med lidt inspiration til opgavens løsning.
Avatar billede marcus1911 Nybegynder
30. september 2004 - 23:09 #17
Hehe, ja ok.
Avatar billede marcus1911 Nybegynder
30. september 2004 - 23:11 #18
Kan man ikke lave adgangskoden så den viser ***** i stedet for teksten?? Hehe.
Avatar billede sjap Praktikant
30. september 2004 - 23:19 #19
Det er ulempen ved at bruge InputBox funktionen. Hvis du vil undgå at vise passwordet, er du nødt til at lave en formular til formålet.
Avatar billede marcus1911 Nybegynder
30. september 2004 - 23:22 #20
Det går nok. Tak for hjælpen.
Avatar billede sjap Praktikant
30. september 2004 - 23:37 #21
Alternativt kan du jo bare lave kodeordet lidt "flydende":

"KinaKode" & WeekDay(Now()) & Format(Time, "h")

Her bliver kodeordet Kinakode efterfulgt (uden mellemrum) af ugedagens nummer (søndag er 1) og efterfulgt (uden mellemrum) af den aktulle klokketime. Lige nu vil koden altså blive KinaKode523. Selvfølgelig kan den "knækkes", men det er ikke helt ligetil. Nu har du fået en ide, så kan det jo være at du er mere kreativ end jeg.  :0)
Avatar billede jensen363 Forsker
01. oktober 2004 - 07:18 #22
Giv bare sjap alle poínt ... det er ok med mig c",)
Avatar billede sjap Praktikant
19. marts 2005 - 19:16 #23
Marcus1911 > Skulle du ikke se at få lukket det her spørgsmål?
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