Jag skulle vilja koppla en kombinationsruta till en tabell som heter ID, när jag väljer detta id så skulle jag vilja deleta hela raden i tabellen hur gör jag då? Jag skulle göra en deletfråga med parameter för ID kolumen. Skulle du vara så otroligt snäll så att du kunde ge mej en utförligare guidning? Vad har du för erfarenheter av access? Att skapa en fråga i Access ser jag som trivialt. Du har fått koden för frågan. Private Sub kbruta4_AfterUpdate()Deleta rader i tabell
Tabellen heter Scoutnamn och kombinationsrutan heter kbruta4!Sv: Deleta rader i tabell
Sedan använda ADODB för att köra frågan som DeleteScoutnamn:
PARAMETERS pID Long;
DELETE
FROM Scoutnamn
WHERE Scoutnamn.Id = pID;
Du anroper sedan frågan med följande VBA kod:
Private Sub Command2_Click()
Dim cmd As ADODB.Command
On Error GoTo Command2_Click_Err
Select Case MsgBox("Are you sure you want to delete this record?", vbYesNo Or vbDefaultButton2 Or vbQuestion, "Delete")
Case vbYes
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = CurrentProject.AccessConnection
cmd.CommandText = "DeleteScoutnamn"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("pID", adInteger, adParamInput, , kbruta4.Value)
cmd.Execute , , adExecuteNoRecords
kbruta4.Requery
End Select
Command2_Click_Exit:
Exit Sub
Command2_Click_Err:
MsgBox Err.Description, vbCritical
Resume Command2_Click_Exit
End Sub
Sv:Deleta rader i tabell
Sv: Deleta rader i tabell
Sv: Deleta rader i tabell
' Skapa en sträng med en sqlfråga (Borttagningsfråga)
Dim sqlStr As String
sqlStr = "Delete Scoutnamn.Nr FROM Scoutnamn WHERE (((Scoutnamn.Nr)=" & kbruta4 & "));"
' Kör frågan:
DoCmd.RunSQL sqlStr
End Sub
Denna lösning bygger på att tabellen har en kolumn som heter Nr och är identitet på den rad som skall tas bort. Det svår är att få in värdet från kbruta4 till Sqlsträngen. Så här ser den raden ut om det alltid vore nr 1 som skall tas bort:
sqlStr = "Delete Scoutnamn.Nr FROM Scoutnamn WHERE (((Scoutnamn.Nr)=1));"
Skulle det vara så att det är ett namn i stället för ett nummer som kbruta4 styr så blir det så här (kanske):
Private Sub kbruta4_AfterUpdate()
' Skapa en sträng med en sqlfråga (Borttagningsfråga)
Dim sqlStr As String
sqlStr = "Delete Scoutnamn.Namn FROM Scoutnamn WHERE (((Scoutnamn.Namn)='" & kbruta4 & "'));"
' Kör frågan:
DoCmd.RunSQL sqlStr
End Sub