Dein Beispiel läuft bei mir mit einer aktuellen
biblatex-Version (v3.4) nicht mehr. Ersetze den \DeclareNameFormat{sortname}-Block durch die Zeile
\DeclareNameAlias{sortname}{family-given}
das Ergebnis sollte dasselbe sein, aber es ist kürzer und funktioniert mit allen Versionen >= v3.3.
Beachte auch, dass in Bohrs.1970 ein Komma fehlte.
Die Option firstinits heißt seit Version 3.3 giveninits.
Ich habe mir die Freiheit genommen, cite:labelyear+extrayear ein bisschen anzupassen (\printtext[parens] statt \mkbibparens). Wenn Du auf diese Art und Weise Klammern in Deine Zitate einführst, bekommst Du aber doppelte Klammern bei \textcite. Vielleicht hättest Du einfach ohne Modifikationen \textcite statt \cite nutzen wollen.
Ad 1: Mit
\AtBeginBibliography{%
\renewcommand*{\multinamedelim}{\addsemicolon\space}%
\renewcommand*{\finalnamedelim}{\multinamedelim}%
}
statt
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\multinamedelim}
bekommst Du Kommas und "und" in den Zitaten und Semikolons im Literaturverzeichnis.
Wenn Du nur
\AtBeginBibliography{%
\renewcommand*{\multinamedelim}{\addsemicolon\space}%
}
nutzt, bekommst Du Semikolons und "und" im Literaturverzeichnis.
(Vorher wolltest Du doch explizit kein "und", oder?)
Ad 2: Nutze den Stil authoryear-comp statt authoryear-icomp, dann musst Du die Option ibidpage löschen, die ist dann nämlich nicht mehr definiert. (Das i in der Bezeichnung des Stils steht für
ibid das ist die englische/lateinische Version von "ebd.".)
Ad 3: Die Option dashed=false sollte das können.
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Bohrs.1967,
keywords = {Bucher},
author = {B{\"o}hrs, Hermann},
year = {1967},
title = {Arbeitsstudien in der Betriebswirtschaft},
address = {Wiesbaden},
publisher = {Gabler Verlag},
}
@book{Bohrs.1970,
keywords = {Bucher},
author = {B{\"o}hrs, Hermann},
year = {1970},
title = {Was soll man machen?},
address = {Wiesbaden},
publisher = {Gabler Verlag},
}
@article{Drees.1980,
keywords = {Artikel},
author = {Drees, Gerhard and Sommer, Hans and Eckert, Gerhard},
year = {1980},
title = {Zweckm{\"a}{\ss}iger Einsatz von Turmdrehkranen auf Hochbaustellen},
pages = {822--843},
number = {12},
journal = {Baumaschine + Bautechnik},
}
\end{filecontents}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[autostyle]{csquotes}
\usepackage[
isbn=false,
style=authoryear-comp,% ad 2
backend=bibtex,
giveninits=true,
dashed=false, % ad 3
]{biblatex}
\addbibresource{\jobname.bib}
\renewcommand*{\nameyeardelim}{\addspace}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printtext[parens]{%
\printfield{labelyear}%
\printfield{extrayear}}}}}
\renewbibmacro*{publisher+location+date}{%
\printlist{location}%
\setunit*{\addcomma\space}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
\usepackage{xpatch}
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\renewcommand*{\labelnamepunct}{\mkbibbold{\addcolon\space}}
% ad 1
\AtBeginBibliography{%
\renewcommand*{\multinamedelim}{\addsemicolon\space}%
\renewcommand*{\finalnamedelim}{\multinamedelim}%
}
\DeclareNameAlias{sortname}{family-given}
\begin{document}
\cite{Drees.1980} und \cite{Drees.1980} und \cite{Drees.1980}
\cite{Bohrs.1967} \cite{Bohrs.1970}
\printbibheading[title=Quellenverzeichnis]
\printbibliography[keyword=Bucher,heading=subbibliography,title={Monographien, Sammelwerke}]
\printbibliography[keyword=Artikel,heading=subbibliography,title={Artikel in Fachzeitschrift}]
\end{document}