VISUAL BASIC Y ACCESO A BASES DE DATOS MEDIANTE ADO Apertura de la conexión Lo primero que debemos hacer es añadir las referencias de acceso a datos. Para ello, nos movemos a Proyecto → Referencias y una vez allí añadimos los Microsoft ActiveX Data Objects 2.6 Library. Una vez hecho esto, podemos proceder a escribir código, creando las variables necesarias para establecer la conexión: Dim cnConex As ADODB.Connection La conexión mediante la cual accederemos a la base de datos. Dim cmdComando As ADODB.Command El comando o consulta a ejecutar en la conexión. Dim strCadenaConex As String La cadena que indica el formato, ubicación, etc. de la base de datos Dim rsLista As ADODB.Recordset El conjunto de registros donde se almacenarán los resultados de la consulta. Dim parParametro1 As ADODB.Parameter … Los distintos parámetros externos que utilizaremos en la consulta. Cuando ya tengamos todas las variables definidas, pasamos a preparar los parámetros para la conexión: Set cnConex = New ADODB.Connection Instanciamos la conexión. strCadenaConex = "Provider=Microsoft.Jet.OLEDB.4.0;” & _ “USER ID=nombreusuario;” & _ “PASS=contraseña;” & _ “Data Source=c:\basdedatos.mdb" Configuramos la cadena de conexión si vamos a acceder a una base de datos de Access. strCadenaConex = "Provider=SQLOLEDB.1;” & _ “USER ID=nombreusuario;” & _ “PASS=contraseña;” & _ “Initial Catalog=nombrecatalogo;” & _ “Data Source=basdedatos" O la configuramos de esta otra forma si vamos a acceder a una base de datos de SQL. cnConex.ConnectionString = strCadenaConex 1 Indicamos a la conexión la cadena de conexión. cnConex.Open Y por último abrimos la conexión. Creación de la consulta Una vez preparada la conexión, procedemos a preparar el comando: Set cmdComando = New ADODB.Command Instanciamos el comando. Comando.ActiveConnection = cnConex Le indicamos a que conexión pertenece. Comando.CommandText = "Consulta SQL” Establecemos la consulta que ejecutará el comando. Set parParametro1 = cmdComando.CreateParameter("campo", tipodedatos, adParamInput, , “valor”) cmdComando.Parameters.Append parParametro1 … Configuramos el parámetro, indicando el campo de SQL al que corresponde, el tipo de datos, tipo de parámetro y el valor/variable. Ejecución de la consulta Una vez preparado también el comando, procedemos a ejecutarlo y guardar sus resultados: cmdComando.Execute Si nuestra consulta no devuelve datos, ejecutamos el comando. Set rsLista = New ADODB.Recordset Set rsLista = cmdComando.Execute Si nuestra consulta devuelve datos, instanciamos el RecordSet y ejecutamos la sentencia indicando que éste es el destinatario de los datos que devuelva. Limpieza de variables Una vez hallamos terminado de ejecutar la consulta y hallamos devuelto los datos, pasamos a liberar la memoria ocupada por las distintas variables. cnConex.Close Cerramos la conexión (opcional, no es necesario hacerlo; si no lo indicamos VB lo hará por nosotros). Set cnConex = Nothing Set cmdComando = Nothing Set strCadenaConex = Nothing 2 Eliminamos las variables. Set rsLista = Nothing Si ya hemos tratado los resultados devueltos, o los hemos trasladado a otra parte, eliminamos también el RecordSet. Anexo I: tipos de datos y tipos de parámetros Tipos de datos más comunes Tipos de parámetros adBinary adBoolean adChar adCurrency adDate adDecimal adDouble adInteger adSmallInt adTinyInt adVarChar adVariant adParamInput adParamInputOutput adParamOutput adParamReturnValue adParamUnknown Anexo II: Resumen básico de sentencias de SQL Sentencia SELECT Devuelve un conjunto de registros. Sintaxis: SELECT campo/s FROM tabla/s WHERE campo1=valor1 AND campo2=valor2… ORDER BY campo1,campo2,… Notas: campo/s puede ser * (obtener todos los registros) En vez de campo1=valor1 también podemos poner campo1 LIKE [patrón1] (Este conjunto de condiciones equivale a Condición en las siguientes sentencias SQL) Al indicar un campo de ordenación, si añadimos DESC detrás del nombre ordenaremos descendentemente Sentencia INSERT Inserta un registro en una tabla. Sintaxis: INSERT INTO tabla (campo1,campo2,…) VALUES (valor1,valor2,…) Notas: Si un campo no admite valores nulos (NULL), debemos obligatoriamente darle un valor no nulo. 3 Sentencia UPDATE Actualiza los datos de uno o más registros de una tabla. Sintaxis: UPDATE tabla SET campo1=valor1,campo2=valor2,… WHERE condición Sentencia DELETE Borra uno, varios o todos los registros de una tabla. Sintaxis: DELETE FROM tabla WHERE condición Notas: Si no especificamos una condición, borrará todos los registros de la tabla. 4