............AnteriorTemario de Visual BasicPágina principal Aula-Web StudioSiguiente

Utilizar SQL desde Visual Basic

- Existen dos tipos de consultas SQL:

Ambas pueden ser tratadas en Visual Basic pero de forma diferente.

Las consultas de selección se ejecutan recogiendo la información en un recordset previamente definido mediante la instrucción openrecordset(), por ejemplo:

Dim SQL as String
Dim RS as recordset

    SQL = "SELECT * FROM Empleados;"
    Set RS=MiBaseDatos.OpenRecordSet(SQL)

Si la consula de selección se encuentra almacenada en una consulta de la base de datos:

    Set RS=MiBaseDatos.OpenRecordset("MiConsulta")

Las consultas de acción, al no devolver ningún registro, no las podemos asignar a ningún recordset, en este caso la forma de ejecutarlas es mediante los métodos Execute y ExecuteSQL (para bases de datos ODBC), por ejemplo:

Dim SQL as string

    SQL = "DELETE * FROM Empleados WHERE Categoria = 'Ordenanza';"
    MiBaseDatos.Execute SQL

1. Funciones de Visual Basic utilizables en una Instrucción SQL
   

Función Sintaxis Descripción
Now Variable= Now Devuelve la fecha y la hora actual del sistema
Date Variable=Date Devuelve la fecha actual del sistema
Time Variable=Time Devuelve la hora actual del sistema
Year Variable=Year(Fecha) Devuelve los cuatro dígitos correspondientes al año de Fecha
Month Variable=Month(Fecha) Devuelve el número del mes del parámetro fecha.
Day Variable=Day(Fecha) Devuelve el número del día del mes del parámetro fecha.
Weekday Variable=Weekday(Fecha) Devuelve un número entero que representa el día de la semana del parámetro fecha.
Hour Variable=Hour(Hora) Devuelve un número entre 0 y 23 que representa la hora del parámetro Hora.
Minute Variable=Minute(Hora) Devuelve un número entre 0 y 59 que representa los minutos del parámetro hora.
Second Variable=Second(Hora) Devuelve un número entre 0 y 59 que representa los segundos del parámetro hora.

DatePart

Esta función devuelve una parte señalada de una fecha concreta. Su sintaxis es:

    DatePart(Parte, Fecha, ComienzoSemana, ComienzoAño)

Parte representa a la porción de fecha que se desea obtener, los posibles valores son:
   

Valor Descripción
yyyy Año
q Trimestre
m Mes
y Día del año
d Día del mes
w Día de la semana
ww Semana del año
h Hora
m Minutos
s Segundos

 

ComienzoSemana indica el primer día de la semana. Los posibles valores son:
   

Valor Descripción
0 Utiliza el valor pode efecto del sistema
1 Domingo (Valor predeterminado)
2 Lunes
3 Martes
4 Miércoles
5 Jueves
6 Viernes
7 Sábado

 ComienzoAño indica cual es la primera semana del año; los posibles valores son:
 

Valor Descripción
0 Valor del sistema
1 Comienza el año el 1 de enero (valor predeterminado).
2 Empieza con la semana que tenga al memos cuatro días en el nuevo año.
3 Empieza con la semana que esté contenida completamente en el nuevo año.

 
2. Evaluar valores antes de ejecutar la Consulta.

Dentro de una sentencia SQL podemos emplear la función iif para indicar las condiciones de búsqueda. La sintaxis de la función iif es la siguiente:

    iif(Expresion,Valor1,Valor2)

En donde Expresión es la sentencia que evaluamos; si Expresión es verdadera entonces se devuelve Valor1, si Expresión es falsa se devuelve Valor2.

    SELECT * Total FROM Empleados WHERE Apellido =
    iff(TX_Apellido.Text <> '', TX_Apellido.Text, *) ;

    SELECT Fecha, Producto, Cantidad, (iif(CodigoPostal>=28000 And
    CodigoPostal <=28999,'Madrid','Nacional')) AS Destino FROM Pedidos;

3. Un Pequeño Manual de Estilo

Siempre es bueno intentar hacer las cosas de igual modo para que el mantenimiento y la revisión nos sea una labor lo más sencilla posible. En lo que a mi respecta utilizo las siguiente normas a la hora de elaborar sentecias SQL:
 

  1. Las cláusulas siempre las escribo con Mayúsculas.
  2. Los operadores lógicos de sentencias siempre con Mayúsculas.
  3. Las operaciones siempre la primera letra con mayúsculas y el resto en minúsculas.
  4. Los operadores lógicos incluidos en otros operadores la primera letra con mayúsculas y el resto con minúculas.

Los Nombres de las Tablas, Campos y Consultas, los escribo siempre la primera letra con mayúsculas y el resto con minúsculas, en algunos casos utilizo el carácter "_" para definir mejor el nombre: Detalles_Pedidos.

Aunque con el motor Jet se pueden utilizar acentos y espacios en blanco para nombrar los campos, las tablas y las consultas no los utilizo porque cuando se exportar tablas a otros sistemas los acentos y los espacios en blanco pueden producir errores innecesarios.

Recuerda siempre que si utilizas espacios en blanco para llamar tablas o consultas cada vez que hagas referencias a ellos en una consulta debes incluir sus nombres entre corchetes.

    SELECT [ID de Pedido], [Nombre del Producto], Cantidad FROM [Detalles del Pedido];

--- Fin documento ---


Copyrigth © Javier Jiménez Muñoz, Colombia, 1.999. Aportes de información, manuales o comentarios de mi Web, envia un email a valeth33@yahoo.es.

AnteriorTemario de Visual BasicPágina principal Aula-Web StudioSiguiente