On Error GoTo Error_Guardar
DB.Open “Provider=SQLOLEDB;” & _
“User ID=sa;” & _
“Pwd=;” & _
“Initial Catalog=Videoclub;” & _
“Data Source=(local)”
DB.BeginTrans
rsAlquileres.Open “ALQUILERES”, _
DB, _
adOpenKeyset, _
adLockOptimistic, _
adCmdTable
rsAlquileres.AddNew
rsAlquileres!CodPelicula = txtCodPelicula.Text
rsAlquileres!CodCliente = txtCodCliente.Text
rsAlquileres.Update
rsAlquileres.Close
rsCopias.Open “SELECT * FROM COPIAS “ & _
“WHERE CodPelicula = “ & _
txtCodPelicula.Text & _
“ AND Alquilada = 0”, _
DB, _
adOpenKeyset, _
adLockOptimistic, _
adCmdText
If rsCopias.BOF And rsCopias.EOF Then
‘Recordset vacío
Err.Raise 1000, , _
“No hay copias disponibles “ & _
“de la película seleccionada”
Else
rsCopias.MoveFirst
CodCopia = rsCopias!CodCopia
rsCopias!Alquilada = True
rsCopias.Update
End If
rsAlquileres.Open “SELECT * FROM ALQUILERES “ & _
“WHERE CodPelicula = “ & _
txtCodPelicula.Text & _
“ AND CodCliente = “ & _
txtCodCliente.Text, _
DB, _
adOpenKeyset, _
adLockOptimistic, _
adCmdText
rsAlquileres!CodCopia = CodCopia
rsAlquileres.Update
Error_Guardar:
If Err.Number <> 0 Then
DB.RollbackTrans
MsgBox “Error: “ & Err.Number & _
“ - “ & Err.Description
Else
DB.CommitTrans
MsgBox “Alquiler registrado “ & _
“exitosamente”
txtCodPelicula.Text = “”
txtCodCliente.Text = “”
txtCodPelicula.SetFocus
End If
End Sub