Sim, isso acontece quando você tenta deletar um elemento de uma tabela A QUAL outra(s) tabela(s) está(ão) vinculada(s).
Pelo que eu entendi, você está tentando deletar um cliente, ok? Ocorre que este cliente está ligado a uma tabela chamada tbagenda, coluna agenda_codcli.
Reveja isso, pois, se a tabela cliente não está com CASCADE para DELETE nas tabelas em que ela é referenciada, você realmente não conseguirá excluir esse registro.
A principal razão é sempre ter o controle total do que se está fazendo (afinal, cascade não serve só para delete).
Se você pesquisar, verá que, sim, há uma grande parcela de desenvolvedores que consideram isso (usar cascade, principalmente para delete) uma prática ruim.
É permitido excluir cliente que tenha agenda? Se for, faça o que @Jonathan_Medeiros falou. Se não for, consulte antes se o cliente tem agenda e exiba mensagem de validação pro usuário avisando sobre isso.