Gracias. Ya me filtra. El problema que tengo es cuando cambio el primer combo, como asigno un nulo al segundo para que se borre la selección anterior?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Imports System.Data.SqlClient
Public Class Form1
Private BotonBorrar As ToolStripItem
Private Sub FABRICANTEBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FABRICANTEBindingNavigatorSaveItem.Click
Dim li_retorno As Integer
li_retorno = Me.Validate()
If li_retorno = -1 Then
Me.FABRICANTEBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.FabricanteDataSet)
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'FabricanteDataSet.FABRICANTE' Puede moverla o quitarla según sea necesario.
Me.FABRICANTETableAdapter.Fill(Me.FabricanteDataSet.FABRICANTE)
Me.BotonBorrar = FABRICANTEBindingNavigator.DeleteItem
End Sub
Private Sub FABRICANTEDataGridView_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles FABRICANTEDataGridView.CellBeginEdit
If FABRICANTEDataGridView(1, e.RowIndex).Value Is DBNull.Value Then
FABRICANTEDataGridView(1, e.RowIndex).Value = UltimoCodigo()
End If
End Sub
Private Sub FABRICANTEDataGridView_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles FABRICANTEDataGridView.DataError
MsgBox(e.Exception.Message, MsgBoxStyle.Exclamation, "Fabricantes")
End Sub
Private Sub FABRICANTEDataGridView_RowValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles FABRICANTEDataGridView.RowValidated
Me.TableAdapterManager.UpdateAll(Me.FabricanteDataSet)
End Sub
Private Sub FABRICANTEDataGridView_RowValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles FABRICANTEDataGridView.RowValidating
If FABRICANTEDataGridView(0, e.RowIndex).Value Is DBNull.Value Then
MsgBox("Debe introducir el fabricante", MsgBoxStyle.Exclamation, "Fabricantes")
e.Cancel = True
Else
e.Cancel = False
End If
End Sub
Private Function UltimoCodigo() As Integer
Dim Conexion As New SqlConnection("Data Source=192.168.1.1;Initial Catalog=PRUEBAS;user id = piwi; password = piwi;")
Dim Datos As New DataSet
Dim li_ultimo As Integer
Conexion.Open()
Dim Adaptador As New SqlDataAdapter("SELECT MAX(IDFABRICANTE) FROM FABRICANTE", Conexion)
Adaptador.Fill(Datos)
If Datos.Tables(0).Rows(0).Item(0) Is DBNull.Value Then
li_ultimo = 0
Else
li_ultimo = Datos.Tables(0).Rows(0).Item(0)
End If
li_ultimo = li_ultimo + 1
Conexion.Close()
Return li_ultimo
End Function
Private Sub FABRICANTEBindingNavigator_ItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles FABRICANTEBindingNavigator.ItemClicked
If e.ClickedItem Is Me.BotonBorrar Then
If MessageBox.Show("Está seguro de querer borrar el registro?", "Fabricantes", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
Me.FABRICANTEBindingNavigator.DeleteItem = Me.BotonBorrar
Else
Me.FABRICANTEBindingNavigator.DeleteItem = Nothing
End If
End If
End Sub
End Class
Cita de: D4N93R en 8 Julio 2010, 18:37 PM
Más bien pierdes control, Que ganas teniendo "control" sobre el ID? nada..
En mi caso la clave la forman dos campos, un id y un tipo por lo que tengo que calcular el id dependiendo del tipo.CitarHay un evento de preborrado?Se llama boton de borrar Ahi haces la validación xD