You can specify the field separators at the command line:
awk -f a.awk FS=";" A.txt FS=" - " B.txt
In this way, the field separator will change for each file. From http://www.delorie.com/gnu/docs/gawk/gawk_82.html :
Any awk variable can be set by including a variable assignment among the arguments on the command line when awk is invoked
and
With it, a variable is set either at the beginning of the awk run or in between input files.