Escolar Documentos
Profissional Documentos
Cultura Documentos
Comandos
Existen dos tipos de comandos SQL:
Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.
Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
COMANDOS DLL
COMANDO Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
Utilizado para modificar las tablas agregando campos o cambiando la definición de los
ALTER
campos.
COMANDOS DML
COMANDO Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado
Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
CLÁUSULA DESCRIPCIÓN
FROM Permite recuperar un conjunto de registros.
WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a
seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
Operadores Lógicos
OPERADOR USO
Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son
AND
ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las
OR
dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
OPERADOR USO
<,>,<>,<=,>=,= Menor que, Mayor que, Distinto de, Menor ó Igual que, Mayor ó Igual que, igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
In Utilizado para especificar registros de una base de datos
Operaciones de actualización
Inserción de filas
Permite adicionar registros a un objeto recordset.
Inserción de una fila
INSERT INTO <nombre_tabla> [(<lista_de _atributos>)] VALUES (<valor_1>, <valor_2>,...,<valor_n>);
Los atributos que no aparezcan en lista_de_atributos quedarán con valor NULL (también puede aparecer en
VALUES el valor NULL). Es obligatorio especificar un valor para los atributos que estén definidos como "NOT
NULL".
Modificación de filas
Permite modificar uno ó un conjunto registros de un objeto recordset.
UPDATE <nombre_tabla> ST <atributo_1> = <valor_1>, <atributo_2> = <valor_2>,
...........
<atributo_n> = <valor_n> [WHERE <condición>];
La modificación afectará a todas las filas que cumplan la condición, si se especifica ésta (la cláusula WHERE
expresa la condición de búsqueda en una consulta y se verá posteriormente). Si no se especifica condición, la
modificación afectará a todas las filas de la tabla. El valor que se asigne a un atributo puede ser una constante, o
el resultado de una subconsulta (que deberá ir entre paréntesis).
SSTab1
Frame1
Frame2
Frame3
Frame4
TxtNombre.SetFocus
CmdGrabar.Caption = "&Grabar" ‘Asigna como titulo “Grabar”
End Sub
Página: 40
Capítulo 3 Visual Basic II
Set regtem = cn.Execute("select * from distritos where nomdistrito = '" & TxtDistrito & "'")
xcoddistrito = regtem("coddistrito")
xActualiza = "update data set nombre = '" & TxtNombre & "', "
xActualiza = xActualiza + "Apellido = '"& TxtApellido &"', "
xActualiza = xActualiza + "sueldo = "& Val(TxtSueldo) &","
Eliminación de filas
Permite eliminar un ó un conjunto de registros de un objeto recordset.
DELETE FROM <nombre_tabla> [WHERE <condición>];
No se pueden eliminar partes de una fila. Si no aparece la cláusula "WHERE" se eliminarán todas las filas de la
tabla, no eliminándose la definición de ésta en el esquema.
Página: 42
Capítulo 3 Visual Basic II
Ejemplo: Mantenimiento de registros maestro detalle, utilizaremos la base de datos pedidos (la
base de datos pedidos es una versión recortada de la base de datos Neptuno, las tablas tienen menos campos)
y realizaremos el mantenimiento de la tabla pedidos – detalles de pedidos .
(Puede solicitar la base de datos pedidos.mdb en jefatura de laboratorio o puede utilizar la base de datos de
ejemplo : Neptuno.mdb )
Cuando usted registre un pedido se debe grabar un registro en la tabla de pedidos, y todos los detalles
agregados al Flexgrid deberán grabarse en la tabla de detalles de pedidos.
- La tabla de pedidos se relaciona con la tabla de clientes, empleados y compañías de envíos
- La tabla de detalles de pedidos se relaciona con la tabla de pedidos y productos
1. Modelo de datos
- Como se observa en el modelo la consulta de un pedido mueve sus tres tablas relacionadas: clientes,
empleados, compañías de envíos.
- Cada detalle de pedido mueve la tabla productos.
regtemp rp
1 regtemp
Empleados
muchos
rd
2. Programa en un Modulo1.
General Declaraciones
Public cn As new Connection ‘Variable que se utilizará para conectarse a la BD
Public regtemp As New Recordset ‘Recordset par alas tables relacionadas
Public rp As Recordset ‘Recordset para la tabla pedidos
Public rd As Recordset ‘Recordset para la tabla detalles de pedidos
Public Sub limpiar(ff As Form) ‘Limpia todos los controles textbox de un formulario
Dim ctrl As Object
For Each ctrl In ff.Controls
If TypeOf ctrl Is TextBox Then
ctrl.Text = ""
End If
If TypeOf ctrl Is ComboBox Then
ctrl.Text = ""
End If
Next
End Sub
Página: 44
Capítulo 3 Visual Basic II
4. Diseño del formulario
Option1
Option2
Option3
Option4
Array de controles
cmddesplaza
Msf1
General Declaraciones
Dim fil As Integer 'Controla el cambio de fila en el control msflexgrid, proc. mostrar datos
Dim fila As Integer 'Controla el cambio de fila en el control msflexgrid, proc. agregadetalle
Dim totalg As single 'Totaliza los detalles de pedidos, por cada pedido
Call limpiar(formpedidos)
msf1.Rows = 1
Página: 46
Capítulo 3 Visual Basic II
txtnumero.Enabled = False
End Sub
total = 0
totalg = 0
For i = 1 To msf1.Rows - 1
total = Val(msf1.TextMatrix(i, 3)) * Val(msf1.TextMatrix(i, 4))
totalg = totalg + total
Next
Práctica dirigida 1:
Objetivo:
Repasar los temas de conexión, desplazamiento, búsqueda, adición, modificación y eliminación de
registros con tablas relacionadas.
Mantenimiento de registros con tablas relacionadas
1.Consideraciones
- Utilizaremos la base de datos Neptuno
- Realizaremos el mantenimiento de la tabla productos
- Activar las librerías de objetos ADO. Seleccione menú Project, References
Microsoft ActiveX Data Object 2.1 Library
Microsoft ActiveX Data Object Recordset 2.1 Library
2.Desarrollo de la aplicación
2.1 Modelo de datos Neptuno. De este modelo se observa que la tabla producto recoge
datos de la tabla proveedores y categorías. Entonces se trata de un mantenimiento
de registros con tablas relaciónales.
Página: 48
Capítulo 3 Visual Basic II
General Declaraciones
Public cn As Connection ‘Variable que permita conectarse a una BD.
Public regproducto As Recordset `Variable que se utilizará para abrir una tabla
Public regtemp As New Recordset ‘Variable que se utilizará para acceso a registros
‘Procedimiento que permite llenar un combo, con los datos de un campo perteneciente
‘a una tabla.
Public Sub llenacombo(c As Object, campo As String, tabla As String)
Dim regtemp As New Recordset
Dim sql As String
sql = " select " + campo + " from " + tabla + " order by 1 "
regtemp.Open sql, cn, adOpenForwardOnly
c.Clear
Do While Not regtemp.EOF
If Not IsNull(regtemp.Fields(0)) Then c.AddItem regtemp.Fields(0)
‘Si el campo de datos tiene un valor, transfiere este valor como elemento del combobox
regtemp.MoveNext
Loop
regtemp.Close
End Sub
Página: 50
Capítulo 3 Visual Basic II
SSTab1
CmdNuevo,
CmdGrabar,
CmdCancelar,
CmdEditar,
CmdActualizar,
Cmdsalir
Array de
controles
Propiedad name:
cmddesplaza
chksuspendido
StatusBar1
General Declaraciones
Sub mostrardatos()
If regproducto.BOF Or regproducto.EOF Then ‘Verifica si existen registros
MsgBox ("no existen registros")
Beep
Exit Sub
End If
txtcodigo = regproducto("idproducto")
txtnombre = regproducto("nombreproducto")
‘Executa una cadena SQL para localizar el código de proveedor de la tabla categorías, en la tabla de proveedores
Set regtemp = cn.Execute("select * from proveedores where idproveedor = " & regproducto("Idproveedor") & "")
Combo1 = regtemp("NombreCompañía")
‘Carga el nombre del proveedor, del registro localizado con la cadena SQL anterior
‘Executa una cadena SQL para localizar el código de la categoría de la tabla productos, en la tabla de categorías
Set regtemp = cn.Execute("select * from categorías where Idcategoría = " & regproducto("Idcategoría") & "")
Combo2 = regtemp("Nombrecategoría")
‘Carga el nombre de la categoría, del registro localizado con la cadena SQL anterior
txtcantidad = regproducto("cantidadporunidad")
txtprecio = regproducto("preciounidad")
txtunidexist = regproducto("unidadesenexistencia")
txtunidped = regproducto("unidadesenpedido")
txtnivelped = regproducto("nivelnuevopedido")
If regproducto("suspendido") Then
chksuspendido.Value = 0
Else
chksuspendido.Value = 1
End If
If Not IsNull(regproducto("fds")) Then txtfds = regproducto("fds")
End Sub
‘2. Busca nombres y captura los códigos necesarios para el momento de la grabación
If chksuspendido.Value = 1 Then
xsuspendido = 0
Else
xsuspendido = -1
End If
Página: 52
Capítulo 3 Visual Basic II
End If
Call actcommant(Form5)
frame1.Enabled = False
End Sub
Práctica dirigida 2:
Objetivo:
Repasar los temas de conexión, desplazamiento, búsqueda, adición, modificación y eliminación de
registros con tablas relacionadas.
Mantenimiento de registros con tablas relacionadas
1.Consideraciones
- Utilizaremos la base de datos Transporte.mdb
- Realizaremos el mantenimiento de la tabla salidas
- Activar las librerías de objetos ADO. Seleccione menú Project, References
Microsoft ActiveX Data Object 2.1 Library
Microsoft ActiveX Data Object Recordset 2.1 Library
2.Desarrollo de la aplicación
Página: 54
Capítulo 3 Visual Basic II
2.3 Contenido de las tablas
General Declaraciones
Public Cn As New Connection
Public Re As New Recordset
Public Regtemp As New Recordset
Public Regtemp2 As New Recordset
Public Rv As New Recordset
Public Rt As New Recordset
Public Sub LlenarCombo(C As ComboBox, tabla As String, campo As String, Optional x As Integer)
Dim Temp As New Recordset
Dim sql As String
sql = "select " + campo + " from " + tabla
Temp.Open sql, Cn, adOpenForwardOnly
C.Clear
Do While Not Temp.EOF
If Not IsNull(Temp.Fields(0)) Then C.AddItem Temp.Fields(0)
Temp.MoveNext
Loop
Temp.Close
End Sub
Página: 56
Capítulo 3 Visual Basic II
End Sub
Cn.Execute (xgraba)
Re.Requery
Asiento(Index).BackColor = vbBlue
Asiento(Index).Enabled = False
End If
Txtsalida = xcodigo
End Sub
Dim xiddestino
Set Regtemp = Cn.Execute("select * from destinos where nombre='" & Combo1 & "'")
xiddestino = Regtemp(0)
Dim xbusca As String
xbusca = Trim(Year(DTPicker1.Value)) & "-" & Trim(xiddestino) & "-" & Trim(Day(DTPicker1.Value)) & "-" &
Trim(Month(DTPicker1.Value)) & "-" & Trim(Left(Combo2, 4))
Set Regtemp = Cn.Execute("select * from salidas where left(idsalida,15)= '" & xbusca & "'")
If Regtemp.BOF Or Regtemp.EOF Then
MsgBox ("todos los asientos estan libres")
Exit Sub
End If
Dim a As Integer
Do While Not Regtemp.EOF
Asiento(Regtemp(3)).BackColor = vbBlue
Asiento(Regtemp(3)).Enabled = False
Regtemp.MoveNext
Loop
End Sub
Práctica dirigida 3:
Objetivo:
Repasar los temas de conexión, desplazamiento, búsqueda, adición, modificación y eliminación de
registros con tablas relacionadas.
Mantenimiento de registros con tablas relacionadas
1.Consideraciones
- Utilizaremos la base de datos Personal.mdb
- Realizaremos el mantenimiento de la tabla DatosLaborales
- Activar las librerías de objetos ADO. Seleccione menú Project, References
Microsoft ActiveX Data Object 2.1 Library
Microsoft ActiveX Data Object Recordset 2.1 Library
2.Desarrollo de la aplicación
Página: 58
Capítulo 3 Visual Basic II
General Declaraciones
Public cn As New Connection
Public regtemp As Recordset 'Tablas relacionales
Public reg As Recordset 'Apunta a la tabla principal
Public Sub conexion()
cn.Provider = "Microsoft.jet.oledb.4.0"
cn.Open App.Path + "\Personal.mdb"
End Sub
End Sub
Página: 60
Capítulo 3 Visual Basic II
Set regtemp = cn.Execute(" Select * from cargo where nomcargo='" & TxtCargo & "'")
xcargo = regtemp(0)
Set regtemp = cn.Execute("Select * from dpto where nomdpto='" & TxtDpto & "'")
xdpto = regtemp(0)
cn.Execute ("update DatosLaborales set Nombre = '" & TxtNombre & "',apellido = '" & TxtApellido & "',cargo= " &
xcargo & ",departamento=" & xdpto & " where codempleado = " & Val(TxtCodigo) & "")
reg.Requery
End If
Frame1.Enabled = True
Frame2.Enabled = True
Frame3.Enabled = True
CmdNuevo.Enabled = True
CmdActualizar.Enabled = False
End Sub
xCodDpto = regtemp(0)
Set regtemp = cn.Execute("Select * from Cargo where NomCargo= '" & TxtCargo & "'")
xCodCargo = regtemp(0)
cn.Execute ("insert into DatosLaborales values (" & Val(TxtCodigo) & ",'" & TxtNombre & "','" & TxtApellido & "'," &
xCodCargo & ", " & xCodDpto & ")")
reg.Requery
End If
End Sub
Práctica Propuesta:
Objetivo:
1. Repasar los temas de conexión, desplazamiento, búsqueda, adición, modificación y
eliminación de registros con tablas relacionadas.
Utilizaremos la base de datos Videos.mdb
Página: 62
Capítulo 3 Visual Basic II
Página: 64
Capítulo 3 Visual Basic II
Cuestionario
1. Diseñar un programa que permita adicionar, modificar y eliminar registros de la tabla clientes, base de datos
Neptuno.
2. Diseñar un programa que permita adicionar, modificar y eliminar registros de la tabla empleados, base de
datos Neptuno.
3. Crear el procedimiento que permita controlar el stock de productos, base de datos Neptuno.
Página: 66