openrowset to connect to SQL server with a password containing single quotes
This is definitely one of those occasions when you should print out @string and see what it is actually set to...

SELECT a.*  
FROM OPENROWSET('SQLNCLI11', 'SERVER=sqlserver.database.windows.net,1433;DATABASE=testDB;Uid=admin;Pwd="Fj'C(D=JJ&amp;'XE6vx}";','select count(*) from dbo.table1 with (nolock)')a


You can see in the printed out results above (taken from Solution 1, although 2 is identical) that you are not escaping the single quotes in your connection string and so are ending the string before the 'C' and starting it again before the '&amp;'.

You need an additional double set of quotation marks before the 'C' and after the '&amp;'.

declare @string varchar(max);
declare @pwd varchar(max);
set @pwd = 'Fj'''+'''C(D=JJ&amp;'''''+'XE6vx}';
set @string=
'SELECT a.*  
FROM OPENROWSET(''SQLNCLI11'', ''SERVER=sqlserver.database.windows.net,1433;DATABASE=testDB;Uid=admin;Pwd='+@pwd+';'',''select count(*) from dbo.table1 with (nolock)'')a'


This gives the following string, which should now have the required escaping of the single quotes and should hopefully work.

SELECT a.*    
FROM OPENROWSET('SQLNCLI11', 'SERVER=sqlserver.database.windows.net,1433;DATABASE=testDB;Uid=admin;Pwd=Fj''C(D=JJ&amp;''XE6vx};','select count(*) from dbo.table1 with (nolock)')a