muchas gracias amigo , ya logre conseguir como realizarlo de otra manera pero tengo este pequeno problema todo funciona bien al ingresar el codigo si existe el me rellena los campos con los datos
los dos problemas son>
1> al pasar al campo de nombre su longitud solo muestra 10 caracteres pero esta configurado para un maximo de 50 que es lo que acepta la base de datos
cuando el cursor se situa en el campo nombre (recordamos que si existe muestra los datos para modificarlos o eliminarlos) me selecciona todo el campo y el cursor se va al final del texbox para ver los datos entonces tengo que regresar con las flechas de navegacion al principio del texbox para que aparezca el dato y poderlo modificar ahora como hago para que cuando se situe en el campo de nombre por ejemplo el cursor quede al principio del texbox creo que la solucion es que no me seleccione todo el dato del campo cuando entra en foco pero como hago esto hay un amanera
2> no me deja editar la informacion trato de escribir en el campo de nombre y esta como bloqueado
este es el codigo
Private Sub txtcodigozona_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtcodigozona.Validating
If txtcodigozona.Text.Length = 0 Then
e.Cancel = True
Errorzona.SetError(txtcodigozona, "Ingrese un Código de registro. El campo no puede estar en blanco")
Else
Errorzona.SetError(txtcodigozona, Nothing)
Me.BindingContext(dszonas, "zonas").Position = BuscarRegistro(Me.BindingContext(dszonas, "zonas").Position)
End If
End Sub
Private Function BuscarRegistro(ByVal prmPos As Integer) As Integer
'Código para buscar un registro
'Recibe como parámetro la posición actual en el DataSet
'para, en el caso de no encontrar el registro solicitado,
'regresar la posición del registro antes de iniciar.
'Lo que hace este procedimiento es
'regresar la posición en la que se encuentra el registro
'solicitado, en caso de no encontrarlo, regresa la posición
'antes de iniciar la búsqueda
Try
Dim dvzonas As DataView = New DataView(dszonas.Tables(0), "", _
"codigozona", DataViewRowState.CurrentRows)
'Declaramos varcodigocliente
Dim varcodigozona As String = ""
'Preguntamos la clave del cliente que se desea buscar
varcodigozona = (txtcodigozona.Text) '' InputBox("Introduce la clave a buscar", "Buscar")
If Not varcodigozona = "" Then
'Regresamos el index del cliente encontrado
Return dvzonas.Find(varcodigozona)
Exit Function
Else
'Si no se especificó el cliente, regresamos la
'posición (index) del cliente original(prmPos)
MessageBox.Show("La búsqueda no se puede realizar", _
"Información del sistema", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Return prmPos
Exit Function
End If
Catch ex As Exception
'En caso de error, suponiendo que no se encontró el cliente,
'regresamos la posición original del cliente(prmPos)
MessageBox.Show(ex.Message, "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Return prmPos
Exit Function
End Try
End Function
Private Sub zonas_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Inicializar()
End Sub
Private Sub Inicializar()
Try
With cnnzonas
''Verificamos el estado de la conoexión
If .State = 1 Then 'si esta abierta
.Close() 'cerramos
End If
.Open() '' abrimos la conexion
End With
''Cargamos el DataSet Con los datos de La tabla
dazonas.Fill(dszonas, "zonas")
''Enlazamos los Objetos
txtcodigozona.DataBindings.Add("Text", dszonas, "zonas.codigozona")
txtnombrezona.DataBindings.Add("Text", dszonas, "zonas.nombrezona")
Dtfechaaltazona.DataBindings.Add("Text", dszonas, "zonas.fechaaltazona")
txtdetallezona.DataBindings.Add("Text", dszonas, "zonas.detallezona")
Catch ex As Exception
''Esto ocurriría solo en el caso de que ocurra un error
MessageBox.Show(ex.Message, "Info del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub