ActiveX Data Objects, afgekort ADO, is een verzameling van COM-objecten die gebruikt worden om gegevensbronnen aan te spreken. Bij gegevensbronnen moet men denken aan bijvoorbeeld databases. ADO is ontwikkeld door Microsoft. Het doel van ADO is om een laag te vormen tussen een programmeertaal en een database. Een programmeur die in zijn programma data wil ophalen hoeft dan niet te weten welke technieken zijn gebruikt om de database te bouwen. De programmeur hoeft dan alleen kennis te hebben van de ADO-functies om data op te halen. Wanneer gebruikgemaakt wordt van ADO om databronnen aan te spreken, hoeft de programmeur bijvoorbeeld geen SQL te kennen.

Microsoft heeft ADO in 1996 ontwikkeld om de verouderde programmeerinterfaces RDO (Remote Data Objects) en DAO (Data Access Objects) te vervangen. Een opvolger van ADO is ook al verwerkt in het .NET platform van Microsoft, genaamd ADO.NET. De objectstructuur van deze opvolger is echter geheel anders dan die van de originele uitgave van ADO.

Objecten en Collections 
ActiveX Data Objects kent enkele objecten om met een gegevensbron te communiceren:
 Connection - maak een verbinding met een gegevensbron.
 Command - voer een commando of query uit op de gegevensbron.
 Record - representeert een item in de gegevensbron.
 Recordset - representeert een verzameling records.
 Stream - gegevensstroom, zoals van een tekstfile.
 Parameter - parameter die Command nodig heeft in de query.
 Field - komt overeen met een kolom van een record of recordset.
 Property - bevat de vaste ingebouwde of dynamische eigenschappen van een ADO-object.
 Error - object waarin foutmeldingen worden opgenomen.

Verder zijn er nog enkele Collections:
 Fields - Bevat alle Fieldobjecten van een record/ recordset.
 Properties - Bevat alle Property-objecten van een bepaalde instantie van een object.
 Parameters - Bevat alle Parameterobjecten van een Command
 Errors - Bevat alle Errorobjecten.

Codevoorbeeld 
Zoals gezegd vormt ADO een laag tussen programmeertaal en gegevensbron. Bekende programmeertalen of scripttalen die goed met ADO overweg kunnen zijn VBScript, ASP, Visual Basic of C#.
Stel dat het Telefoonnummer van gebruiker KenDZ opgehaald moet worden uit een tabel Telefoongids, met behulp van ASP en ADO. Onderstaand voorbeeld zou men kunnen gebruiken wanneer niet bekend is wat voor type database er onder de ADO laag ligt.

 dim dbcon, rs, telnr
 set dbcon = server.createobject("ADODB.Connection")
 set rs = server.createobject("ADODB.recordset")
 
 dbcon.open(mijndatabase)
 rs.open("Telefoongids", dbcon)
 rs.find("Naam = 'KenDZ'")        'gebruik de methode find om juiste record te vinden in de tabel
 telnr = rs.fields.item("Telefoonnummer") 'haal de info uit de juiste kolom (field) van het record.
 
 'Afsluiten
 rs.close
 dbcon.close
 set res = nothing
 set dbcon = nothing

Gesteld nu dat bekend zou zijn dat de onderliggende databron een SQL-database is. Dan is het ook mogelijk om SQL-query's te gebruiken om de gewenste informatie op te vragen. In het voorbeeld zou het dan worden:

 dim dbcon, rs, telnr
 set dbcon = server.createobject("ADODB.Connection")
 
 dbcon.open(mijndatabase)
 set rs = dbcon.execute("SELECT Telefoonnummer FROM Telefoongids WHERE Naam = 'KenDZ'")
 telnr = rs(0)              'de verzameling records bestaat nu uit 1 record, met 1 field: Telefoonnummer.
 
 'Afsluiten
 rs.close
 dbcon.close
 set rs = nothing
 set dbcon = nothing

Externe link 
 Microsoft ADO pagina

Technische informatica