Hola.
Es incorrecta la sintáxis SQL de la sentencia de borrado.
Código:
void __fastcall TForm1::btnBorrarClick(TObject *Sender)
{
Query1->Close();
Query1->SQL->Text = "SELECT DNI FROM ALUMNO WHERE ""DNI"" = :""PDNI""";
Query1->ParamByName("PDNI")->AsString = Trim(Edit1->Text);
Query1->Open();
if (!Query1->IsEmpty()) {
Query1->Close();
Query1->SQL->Text = "DELETE FROM ALUMNO WHERE ""DNI"" = :""PDNI""";
Query1->ParamByName("PDNI")->AsString = Trim(Edit1->Text);
Query1->ExecSQL();
Table1->Refresh(); // (Si es que el DBGrid está conetado con Table1)
MessageBox(Handle, "Los datos fueron borrados con exito",
"AVISO", MB_ICONINFORMATION + MB_OK);
} else
MessageBox(Handle, "El alumno no existe","AVISO",
MB_ICONINFORMATION + MB_OK);
}
Saludos.