The nearest airport is Jerez de la Frontera 40 kms. There are direct flights to Jerez from Madrid and Barcelona as well as charter flights from the UK, Germany and some other European countries. In high season Ryanair operate a direct flight from London. There is train that links the airport with Cadiz. There is no bus service.
Seville airport is 100 kms away, Malaga airport is 250 km away. By bus it takes app. 3.5 hours.
Shuttle bus from Malaga: www.venta.avanzabus.com
Shuttle bus Cadiz-Jerez: http://siu.cmtbc.es/en/horarios_lineas.php?municipioLineas=42