<< Calculus`VectorAnalysis`
<< Graphics`PlotField`
<< Graphics`Animation`
SetCoordinates[Cartesian[x, y, z]]; Clear[x, y]; a = 1; q = 1; 
    e = 1;
rr = {x, y}; aa = {a, 0}; rp = rr - aa/2; rm = rr + aa/2; 
    pp = q*aa;
vk = 1/(4*Pi*e)*pp . rr/(rr . rr + 0.000001)^(3/2); 
    vg = 1/(4*Pi*e)*(q/Sqrt[rp . rp + 0.000001] - 
            q/Sqrt[rm . rm + 0.000001]);
ek = -Grad[vk]; eg = -Grad[vg];
SetDirectory["z:"];
Export["Cartesian.gif", 
      Table[Show[
          GraphicsArray[{{Plot3D[vk, {x, -h, h}, {y, -h, h}], 
                Plot3D[vg, {x, -h, h}, {y, -h, 
                    h}]}, {PlotVectorField[{Part[ek, 1], 
                    Part[ek, 2]}, {x, -h, h}, {y, -h, h}], 
                PlotVectorField[{Part[eg, 1], Part[eg, 2]}, {x, -h, 
                    h}, {y, -h, h}]}}], ImageSize -> 500], {h, 0.1, 
          3, 0.1}]]