Tenemos el registro de países con los campos idpais, descripción y a la derecha se genera la sentencia insert into de todos los registros.
Esto lo lograremos utilizando una función personalizada en vba.
DESARROLLO
Presionamos Alt + F11 para dirigirnos a nuestro entorno de visual basic
Menu insertar - > Modulo
Pegamos el siguiente código:
Function GenerarSQL(Rango As Range, Tabla As String)Esta funcion llamada GenerarSQL va a constar de dos parámetros de entrada:
For Each celda In Rango
If IsNumeric(celda) Then
Concat = Concat & celda & ","
Else
Concat = Concat & Chr(39) & celda & Chr(39) & ","
End If
Next
GenerarSQL = Left(Concat, Len(Concat) - 1)
GenerarSQL = "INSERT INTO " & Tabla & " VALUES (" & GenerarSQL & ")"
End Function
Rango: Rango de celdas las cuales contienen información y que representaran a un campo de una tabla.
Tabla: Cadena de texto que sera el nombre de la tabla.
Si los valores de nuestro parámetro Rango son de tipo texto se le agrega una camilla simple antes y después del valor. Ya que para el SQL la cadena de texto lo necesita.
EJECUCIÓN
Nos ubicamos en la celda E4 de nuestra hoja de calculo y escribimos la función que hemos creado anteriormente: =GenerarSQL(B4:C4,"TB_PAISES")
Desde B4:C4 se encuentran los datos y "TB_PAISES" es el nombre de la tabla a la cual le vamos a insertar los datos.
SQL SERVER
En nuestra base de datos creamos nuestra tabla llamada TB_PAISES
CREATE TABLE [dbo].[TB_PAISES](
[IDPAIS] [int] NULL,
[DESCRIPCION] [varchar](250) NULL
)
Luego copiamos la sentencia de la columna "E" de nuestra hoja de excel y pegamos en el sql server, Ejecutamos las sentencias y se registraran todos los países que teníamos en nuestra hoja de excel.
Esto puede servirnos para insertar registros de nuestra hoja de excel hacia cualquier tabla ya que es personalizable el rango de celdas y el nombre de la tabla.
Desde aqui podran bajar el archivo de ejemplo.
No hay comentarios:
Publicar un comentario