Ayudantía extra final TI2 – Fe de erratas
Cueck. En el Form3, que es donde aparece el código nuevo de asignación de parámetros de Access a VB, hay un error en el botón de Ejecutar (Button1). El código corregido es el siguiente:
Dim con As OleDbConnection
Dim orden As OleDbCommand
Dim orden2 As OleDbCommand
con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\WHP\Documents\bd1.mdb")
Dim query1 As String
Dim query2 As String
Dim query3 As String
Dim cantidadvideo As Integer
‘Query de selección, para asignar la cantidad a una variable
query3 = "select cantidad from video where id_video = @p1"
orden2 = New OleDbCommand(query3, con)
orden2.Parameters.Add(New OleDbParameter("@p1", OleDbType.Integer))
orden2.Parameters("@p1").Value = TextBox2.Text
‘Inicio de conexión para ExecuteScalar
orden2.Connection.Open()
‘La orden ExecuteScalar leerá el valor único de una consulta cualquiera para asignarla a
‘una variable, en este caso, cantidadvideo
cantidadvideo = orden2.ExecuteScalar()
‘Cerramos la conexión para la orden que usamos
orden2.Connection.Close()
‘Ciclo de pregunta para revisar la disponibilidad en stock del video
If cantidadvideo < Val(TextBox3.Text) Then
‘Si la cantidad es insuficiente…
MessageBox.Show("Cantidad en stock insuficiente", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
‘Si la cantidad es suficiente…
MessageBox.Show("Arriendo realizado", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information)
query1 = "insert into transaccion (cliente, pelicula, cantidad, precio, tipo_trans, total_compra, fecha) values (@p1, @p2, @p3, @p4, ‘Arriendo’, @p6, @p7)"
orden = New OleDbCommand(query1, con)
orden.Parameters.Add(New OleDbParameter("@p1", OleDbType.Integer))
orden.Parameters("@p1").Value = TextBox1.Text
orden.Parameters.Add(New OleDbParameter("@p2", OleDbType.Integer))
orden.Parameters("@p2").Value = TextBox2.Text
orden.Parameters.Add(New OleDbParameter("@p3", OleDbType.Integer))
orden.Parameters("@p3").Value = TextBox3.Text
orden.Parameters.Add(New OleDbParameter("@p4", OleDbType.Integer))
orden.Parameters("@p4").Value = TextBox4.Text
orden.Parameters.Add(New OleDbParameter("@p6", OleDbType.Integer))
orden.Parameters("@p6").Value = TextBox5.Text
orden.Parameters.Add(New OleDbParameter("@p7", OleDbType.Date))
orden.Parameters("@p7").Value = Now()
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
query2 = "update video set cantidad=cantidad-@p1 where id_video=@p2"
orden = New OleDbCommand(query2, con)
orden.Parameters.Add(New OleDbParameter("@p1", OleDbType.Integer))
orden.Parameters("@p1").Value = TextBox3.Text
orden.Parameters.Add(New OleDbParameter("@p2", OleDbType.Integer))
orden.Parameters("@p2").Value = TextBox2.Text
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox1.Focus()
End IfSi usted se considera flojo, y quiere copiar y pegar de un lado más cómodo, descargue este archivo.