Esta vez veremos una alternativa más de cómo podemos gestionar nuestros datos, y es creando una base de datos con Azure SQL Database.
Estas bases de datos no se gestionan dentro de una máquina virtual en particular, sino que son administradas directamente en el portal de Azure, y podremos acceder remotamente a ella desde nuestro proyecto cliente de Excel, mediante un servidor SQL que crearemos en el proceso.
Para este ejercicio, seguiremos utilizando los procedimientos almacenados que hemos visto en los capítulos anteriores, y además, he creado otros procedimientos almacenados que nos pueden servir de base para construir un sistema de facturación.
Aquí les dejo el query que contiene el Script completo que nos permitirá manejar los registros en el Servidor SQL de Azure.
create table productos ( id_Cod int identity primary key, cod_prod varchar(4) not null, descripcion varchar(50)not null, existencia int not null, ) GO insert into productos values('A001','MEMORIA USB 32GB',175); insert into productos values('A002','DISCO DURO 2TB',15); insert into productos values('A003','AIRE COMPRIMIDO',250); insert into productos values('A004','ESPUMA LIMPIADORA',300); insert into productos values('A005','FUNDA MONITOR',500); insert into productos values('A006','FUNDA TECLADO',700); insert into productos values('A007','SILLA ERGONÓMICA',11); insert into productos values('A008','ALFOMBRILLA PARA SILLA',25); insert into productos values('A009','LÁMPARA ESCRITORIO',7); insert into productos values('A010','MONITOR LED 18 PULGADAS',45); insert into productos values('A011','LIBRERO',20); GO CREATE PROCEDURE SP_RegistrarProducto @CodProd varchar(4), @Descripcion varchar(50), @Existencia int AS begin insert into productos values(@CodProd, @Descripcion, @Existencia) end GO CREATE PROCEDURE SP_ModificarProducto @CodProd varchar(4), @Descripcion varchar(50), @Existencia int AS update productos set cod_prod =@CodProd, descripcion=@Descripcion, existencia=@Existencia where cod_prod=@CodProd GO CREATE PROC SP_EliminarProducto @CodProd as varchar(4) AS delete from productos WHERE cod_prod=@CodProd GO CREATE PROC SP_RestarExistencia @CodProd as varchar(4), @Cantidad as int AS UPDATE productos SET existencia=existencia-@Cantidad WHERE cod_prod=@CodProd GO CREATE PROC SP_SumarExistencia @CodProd as varchar(4), @Cantidad as int AS UPDATE productos SET existencia=existencia+@Cantidad WHERE cod_prod=@CodProd GO CREATE PROCEDURE SP_MostrarDatos AS SELECT * FROM productos
Por otra parte, el proyecto de Excel que nos sirve de cliente de conexión, lo he modificado de tal forma que podamos realizar consultas SQL y recuperar los datos directamente en una hoja de cálculo.
El siguiente código hace posible llamar los datos al servidor, desde Excel...
Sub ConsultaSQL() Dim Fila As Long Dim i As Long Dim sql As String On Error GoTo ErrorHandler Hoja1.Range("A:D").Clear sql = [miConsulta].Text ErrorHandler: If Err < 0 Then MsgBox Err.Description, vbCritical Exit Sub End If If Err = 3704 Then sql = "select * from productos order by cod_prod" End If Set Rst = New ADODB.Recordset Rst.Source = sql Rst.ActiveConnection = Conn Rst.Open sql, Conn Fila = 0 For i = 0 To Rst.Fields.Count - 1 Hoja1.Cells(Fila + 1, i + 1).Value = Rst.Fields(i).Name Next i Fila = 1 Do While Not Rst.EOF For i = 0 To Rst.Fields.Count - 1 Hoja1.Cells(Fila + 1, i + 1).Value = Rst.Fields(i) Next i Fila = Fila + 1 Rst.MoveNext Loop End Sub
Te invito a ver el vídeo en YouTube y descubrirás lo simple que es hacer este tipo de implementaciones.
Ver vídeo |
Descarga el Proyecto |