I would recommend not using the letter D for a symbol in your equation. D is a built in symbol, which is why it shows up as black in a notebook without you having defined it.
D
It doesn't give an error in Gianluca's code (because it has DownValues but no OwnValues), but it is still a good practice to avoid name conflicts.
DownValues
OwnValues
For this particular set of equation it can:
Solve[{i == A z (z^2 + (a + x)^2)^(-1/2), D == A (x + a) (z^2 + (a + x)^2)^(-3/2)}, {x, z}]
Yes, it's easy once you clarify your input and output format. You can repackage the solution into a function, for example
sol[{i_, d_}] = Solve[{i == A z (z^2 + (a + x)^2)^(-1/2), d == A (x + a) (z^2 + (a + x)^2)^(-3/2)}, {x, z}] sol[{1, 2}]
Thanks a lot! This was very helpful. Now I see that I can get the solution I need with Mathematica
Gianluca's solution outputs Then of course you can use your (I,d) and the a, A constants to fill in the gaps. So I would say it's easy to implement this with Mathematica.