Sunteți pe pagina 1din 18

Entonces es mucho más fácil de lo que te había propuesto en un primer momento.

La consulta es esta:

 SELECT * FROM Productos WHERE DATEDIFF(day, GetDate(), FechaVencimiento) <= 10

Y para mostrar el MessageBox en Visual Basic .NET así:

MessageBox.Show("El producto está a menos de 10 días de vencer")

 Que tal amigos, espero me puedan brindar su apoyo para lograr esto.

1.- tengo que registrar en la base de datos notas de adeudo con una fecha limite para
pagarse.

2.- al iniciar el formulario realize una consulta y que en base a ello me muestre con
anticipacion de 3 dias antes por ejemplo de que la nota esta por vencerse y hay que
prevenir el pago.

el detalle es el siguiente yo he hecho esto

Dim hoy As Date = Today.ToLongDateString


Dim nombre As String
Dim cantidad As String
Dim fecha As Date

Dim sql As String = "select * from Cheques Order By FechaMaxima Asc"


Dim cmd As New OleDbCommand(sql, cnx)
cmd.CommandType = CommandType.Text
cnx.Open()
Dim dr As OleDbDataReader
dr = cmd.ExecuteReader()
If dr.Read = True Then
lblNombre.Text = dr.Item(1)
fecha = dr.Item(3)
nombre = dr.Item(1)
cantidad = dr.Item(2)
End If
Dim inicio As Date = hoy
Dim final As Date = fecha
Dim resultado As TimeSpan = final.Subtract(inicio)
Dim dias As String = resultado.Days.ToString

If hoy.AddDays(+5) > fecha And hoy < fecha Then


MsgBox("El Cheque A Nombre De: " + nombre + " Por La Cantidad De $ " +
cantidad + " Pesos " + " Vence En " + dias + " Dias")
Else
If hoy = fecha Then
MsgBox("El Cheque A Nombre De: " + nombre + " Por La Cantidad De $ " +
cantidad + " Pesos " + " Vence EL DIA DE HOY")
End If
End If

cnx.Close()

End Sub

Funciona perfectamente pero el detalle es que solo me selecciona el primer registro, y


si hay un empalme de notas por pagar no me lo notitica.

Ejemplo NOTA1 FechaLimite 14/09/2011

            NOTA2 FechaLimite 14/09/2011

el msgbox() solo me muestra que la NOTA1 esta por vencerse. lo que me interesa
saber como le puedo hacer o como debe de ir el codigo para que me muestre que
ambas NOTAS en 2 msgbox seguidos o en un uno solo estan por vencerse.

AYUDAAAAAAAAAAA¡¡¡¡¡ por favor muchas gracias amigos

martes, 13 de septiembre de 2011 6:21


Responder
|
Citar
JuanMX
0 Puntos

Respuestas

1
Inicie sesión para votar
Buenas JuanMX.

Primeramente te recomendaría que condicionaras la fecha en la propia consulta


para facilitarte más el trabajo.

Sería algo así:

Dim sql As String = "select * from Cheques WHERE " & _


"(DATEDIFF(day, DOC_RECIBIDO_FECHA, GETDATE()) >= 0) AND " & _
"(DATEDIFF(day, DOC_RECIBIDO_FECHA, GETDATE()) <= 3)"
Con esa consulta consigues que te devuelva todos aquellos registros que estén
comprendidos entre hoy y dentro de 3 días.
Por otro lado al llamar al método dr.Read, obtienes únicamente el primer registro,
para conseguir leer todos los registros que del DataAdapter deberás realizar un
bucle.

Sería algo como:

While dr.Read()
Dim inicio As Date = hoy
Dim final As Date = dr.Item(3)
Dim resultado As TimeSpan = final.Subtract(inicio)
Dim dias As String = resultado.Days.ToString

MsgBox("El Cheque A Nombre De: " + dr.Item(1) + " Por La Cantidad De $ " +
dr.Item(2) + " Pesos " + " Vence En " + dias + " Dias")
Loop
Mostrará un MsgBox por cada usuario.
Comprueba bien la consulta y mira si te he entendido bien.

He tomado en cuenta que trabajabas con SQL Server, para Access se hace así:

DateDiff("d", FechaMaxima, Now())
Dim sql As String = "select * from Cheques WHERE " & _
"(DATEDIFF(day, FechaMaxima, GETDATE()) >= 0) AND " & _
"(DATEDIFF(day, FechaMaxima, GETDATE()) <= 3)"

puedes hacer un select que te retorne un count digamos algo asi:

select count(*) from tabla where registro=@registro

si tu count es un 0 entonces no existe si es >=1 entonces existe :) ya


como hacerlo en fox pro ps es otra cosa jajajaja
Soluciones Para Actualizar Un Registro Si Existe, Sino Insertar En
SQL Server.
Filed under: SQL Server, T-SQL — grimpi @ 2:06 am

 Muchas veces cuando trabajamos con ABMs o algún proceso de escritura en la base de datos, al actualizar
los registros, debemos establecer si vamos a efectuar un INSERT o un UPDATE. O sea, tenemos que
determinar si el registro existe o no, para saber que operación se va a efectuar en la base de datos.

Generalmente se suele encapsular toda esta lógica dentro de un SP, algo que considero una muy buena
practica, ya que nos desentendemos del lado de la aplicación, si se va a efectuar una operación de inserción
o de modificación.

Primera solución:

Ahora bien, dentro del Store Procedure, lo solemos hacer para determinar la operación, es el famoso IF
EXISTS.
Ejemplo:

IF EXISTS(SELECT ID FROM TABLA WHERE ID = @ID)
INSERT INTO TABLA (Campo1,ID) VALUES (@Valor,@ID)
ELSE
UPDATE TABLA SET Campo1 = @Valor WHERE ID = @ID

No es un mal enfoque, es muy claro. Sin embargo esta solución tiene dos inconvenientes:
1) Estamos pagando el costo de ejecutar un Query. Por mas que la consulta este indexada, tiene un costo.
2) No es 100% segura. En entornos muy demandantes, con alta concurrencia, puede darse el caso de que
justo luego de ejecutar el IF EXISTS, otro proceso inserte en la tabla un registro con la misma PK y no
tendríamos forma de darnos cuenta, generando un error de duplicate key.
Por lo tanto, esta opción que es la más común, tiene serios inconvenientes.

Segunda solución:
Una segunda opción podría ser esta:

UPDATE TABLA SET Campo1 = @Valor WHERE ID = @ID


IF @@ROWCOUNT = 0
INSERT INTO TABLA (Campo1,ID) VALUES (@Valor,@ID)

En caso, se eliminaría el tener que ejecutar una query con el EXISTS. Aunque en caso de que no exista el
registro, se ejecuta el UPDATE innecesariamente.
Si la mayoría de las operaciones van a ser del tipo INSERT, en realidad no se ganaría performance, pero por
el contrario, si la mayoría de las operaciones seria del tipo UPDATE, podría llegar a ser mas performante.
De todas maneras esta solución sigue teniendo el problema de que otro proceso podría insertar un registro
con la misma PK en la tabla y no tendríamos forma de darnos cuenta.

Tercera solución:

En el segundo caso ganamos un poco de performance (no siempre), pero seguimos con el mismo problema
de concurrencia.
Pero ahora veamos este ejemplo de código:

BEGIN TRY
INSERT INTO TABLA (Campo1,ID) VALUES (@Valor,@ID)
END TRY
BEGIN CATCH
UPDATE TABLA SET Campo1 = @Valor WHERE ID = @ID
END CATCH

A nivel perfomance, es similar a las otras soluciones, pero si tenemos muchas más operaciones de inserción
que de actualización, vamos a ganar velocidad.
Sin embargo, en este caso no tendríamos el inconveniente de concurrencia que sucede en los 2 casos
anteriores!!. Lo cual lo hace ideal para situaciones de alta demanda.

Cuarta solución (Solo en SQL Server 2008):

SQL Server 2008, incorpora el comando MERGE (que ya teníamos en Oracle y otros motores), que sirve para
resolver de una manera muy eficiente, exactamente este problema.

MERGE TABLA
USING (SELECT @ID AS ID) AS SRC ON SRC.ID = TABLA.ID
WHEN MATCHED THEN
UPDATE SET Campo1 = @Valor
WHEN NOT MATCHED THEN
INSERT (Campo1,ID) VALUES (@Valor,@ID)
Con este método, también solucionamos el problema de concurrencia, y además evitar tener que ejecutar
consultas innecesarias. Por lo cual, podríamos decir que es la optima solución resolver este problema, aunque
lamentablemente debemos esperar hasta mitad de año, cuando Microsoft libere SQL Server 2008.

Conclusión:

Vimos como un problema en apariencia tonto y trivial, puede causar serios problemas de performance y peor
aun, crear errores de concurrencia y comportamientos no deseados.
Por las pruebas que hicimos en un entorno de TEST, la diferencia de performance que hicimos no son
demasiadas. Pero en situaciones de alta concurrencia, las 2 primeras soluciones son definitivamente
incorrectas.

Recomiendo ver estos links, que explican como funcionan los lockeos, en cada una de las distintas
soluciones:

poon este codigo en tu boton y quieres que valide 

--------------------------------------... 
Dim Consulta As String = "SELECT CodCliente, NombCliente, Imagen FROM
Clientes WHERE NombCliente='" & TextBox1.Text & "'" 
Con.Open() 
Dim Cadena As SqlDataAdapter = New SqlDataAdapter(Consulta, Con) 
Dim Dt As DataTable = New DataTable 
Cadena.Fill(Dt) 

If Dt.Rows.Count > 0 Then 


MessageBox.Show("Ya Existe", "Información", MessageBoxButtons.OK,
MessageBoxIcon.Information) 
Else 
MessageBox.Show("no Existe Existe", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error) 
End If 

Private Sub txtId_KeyPress(ByVal sender As Object, ByVal e As


KeyPressEventArgs)
 
       If AscW(e.KeyChar) = CInt(Keys.Enter) Then
           '
           ' Validaciones
           '
           errProvider.SetError(txtId, "")
 
           Dim Id As Integer = 0
           If Not Integer.TryParse(txtId.Text, Id) Then
               errProvider.SetError(txtId, "El Id debe ser un valor
numerico")
               Return
           End If
 
           If Not Exists(Id) Then
               errProvider.SetError(txtId, "El Id ingresado no existe.")
               Return
           End If
 
           Obtener(Id)
       End If
 
   End Sub
 
Private Sub Obtener(Id As Integer)
       Dim sql As String = "SELECT Id" & _
                               ",NombreCompleto" & _
                               ",Direccion" & _
                               ",FechaNacimiento " & _
                           "FROM Contactos " & _
                           "WHERE Id = @Id"
 
 
    Using conn As New
SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString(
))
 
        Dim command As New SqlCommand(sql, conn)
        command.Parameters.AddWithValue("Id", Id)
 
        conn.Open()
 
        Dim reader As SqlDataReader = command.ExecuteReader()
 
        If reader.Read() Then
            txtNombre.Text = Convert.ToString(reader("NombreCompleto"))
            txtDireccion.Text = Convert.ToString(reader("Direccion"))
            dtpFechaNanimiento.Value =
Convert.ToDateTime(reader("FechaNacimiento"))
 
        End If
    End Using
End Sub
 
Private Function Exists(Id As Integer) As Boolean
       Dim sql As String = "SELECT COUNT(*) " & _
                           "FROM Contactos " & _
                           "WHERE Id = @Id"
 
 
    Using conn As New
SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString(
))
 
        Dim command As New SqlCommand(sql, conn)
        command.Parameters.AddWithValue("Id", Id)
 
        conn.Open()
 
        Dim count As Integer = Convert.ToInt32(command.ExecuteScalar())
 
        If count = 0 Then
            Return False
        Else
            Return True
 
        End If
    End Using
End Function   

Private Sub btnGuardar_Click(sender As Object, e As EventArgs)


    '
    ' Validaciones
    '
    Dim Id As Integer = 0
    If Not String.IsNullOrEmpty(txtId.Text) Then
        If Not Integer.TryParse(txtId.Text, Id) Then
            MessageBox.Show("El Id debe ser un valor numerico")
            Return
        End If
    End If
 
    If Exists(Id) Then
        Dim result As Boolean = Update(Id, txtNombre.Text,
txtDireccion.Text, dtpFechaNanimiento.Value)
 
        If result Then
            MessageBox.Show("El registro se ha actualizado
correctamente.")
        End If
    Else
        Dim result As Boolean = Insert(txtNombre.Text, txtDireccion.Text,
dtpFechaNanimiento.Value)
 
        If result Then
            MessageBox.Show("El registro se ha insertado correctamente.")
        End If
    End If
End Sub
 
Private Function Insert(nombre As String, direccion As String,
fechaNacimiento As DateTime) As Boolean
    If Not ValidateForm() Then
        Return False
    End If
 
       Dim sql As String = "INSERT INTO Contactos (Id" & _
                                       ",NombreCompleto" & _
                                       ",Direccion" & _
                                       ",FechaNacimiento)" & _
                                   "VALUES (@Id, " & _
                                       "@Nombre, " & _
                                       "@Direccion, " & _
                                       "@FechaNacimiento)"
 
 
    Using conn As New
SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString(
))
        Dim NextId As Integer = MaxId() + 1
 
        Dim command As New SqlCommand(sql, conn)
        command.Parameters.AddWithValue("Id", NextId)
        command.Parameters.AddWithValue("Nombre", nombre)
        command.Parameters.AddWithValue("Direccion", direccion)
        command.Parameters.AddWithValue("FechaNacimiento",
fechaNacimiento)
 
        conn.Open()
 
        Dim rowsAffected As Integer = command.ExecuteNonQuery()
 
        If rowsAffected > 0 Then
            ClearControls()
            Return True
        Else
            Return False
 
        End If
       End Using
 
End Function
 
Private Function MaxId() As Integer
       Dim sql As String = "SELECT MAX(Id)" & _
                           "FROM Contactos"
 
 
    Using conn As New
SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString(
))
 
        Dim command As New SqlCommand(sql, conn)
 
        conn.Open()
 
 
        Return Convert.ToInt32(command.ExecuteScalar())
    End Using
End Function

Private Sub btnGuardar_Click(sender As Object, e As EventArgs)


    '
    ' Validaciones
    '
    Dim Id As Integer = 0
    If Not String.IsNullOrEmpty(txtId.Text) Then
        If Not Integer.TryParse(txtId.Text, Id) Then
            MessageBox.Show("El Id debe ser un valor numerico")
            Return
        End If
    End If
 
    If Exists(Id) Then
        Dim result As Boolean = Update(Id, txtNombre.Text,
txtDireccion.Text, dtpFechaNanimiento.Value)
 
        If result Then
            MessageBox.Show("El registro se ha actualizado
correctamente.")
        End If
    Else
        Dim result As Boolean = Insert(txtNombre.Text, txtDireccion.Text,
dtpFechaNanimiento.Value)
 
        If result Then
            MessageBox.Show("El registro se ha insertado correctamente.")
        End If
    End If
End Sub
 
Private Function Update(id As Integer, nombre As String, direccion As
String, fechaNacimiento As DateTime) As Boolean
 
       If Not ValidateForm() Then
           Return False
       End If
 
       Dim sql As String = "UPDATE Contactos SET " & _
                               "NombreCompleto = @Nombre" & _
                               ",Direccion = @Direccion" & _
                               ",[FechaNacimiento] = @FechaNacimiento " &
_
                           "WHERE Id = @Id"
 
 
    Using conn As New
SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString(
))
 
        Dim command As New SqlCommand(sql, conn)
        command.Parameters.AddWithValue("Id", id)
        command.Parameters.AddWithValue("Nombre", nombre)
        command.Parameters.AddWithValue("Direccion", direccion)
        command.Parameters.AddWithValue("FechaNacimiento",
fechaNacimiento)
 
        conn.Open()
 
        Dim rowsAffected As Integer = command.ExecuteNonQuery()
 
        If rowsAffected > 0 Then
            Return True
        Else
            Return False
 
        End If
    End Using
End Function
Private Sub btnEliminar_Click(sender As Object, e As EventArgs)
    '
    ' Validaciones
    '
    errProvider.SetError(txtId, "")
 
    Dim Id As Integer = 0
    If Not Integer.TryParse(txtId.Text, Id) Then
        errProvider.SetError(txtId, "El Id debe ser un valor numerico")
        Return
    End If
 
    If Not Exists(Id) Then
        errProvider.SetError(txtId, "El Id ingresado no existe.")
        Return
    End If
 
    '
    ' Elimino contacto
    '
    Dim result As Boolean = Delete(Id)
 
    If result Then
        MessageBox.Show("El registro se ha eliminado correctamente.")
        ClearControls()
    End If
 
End Sub
 
 
Public Function Delete(Id As Integer) As Boolean
       Dim sql As String = "DELETE FROM Contactos " & _
                           "WHERE Id = @Id"
 
 
    Using conn As New
SqlConnection(ConfigurationManager.ConnectionStrings("default").ToString(
))
 
        Dim command As New SqlCommand(sql, conn)
        command.Parameters.AddWithValue("Id", Id)
 
        conn.Open()
 
        Dim rowsAffected As Integer = command.ExecuteNonQuery()
 
        If rowsAffected > 0 Then
            Return True
        Else
            Return False
 
        End If
    End Using
End Function
.

Yo tengo estas funciones para usar ucListView casi automaticamente (funciona con el
normal y con el mio xD)
En un modulo
Código: Visual Basic

1.  
2. Public Sub LV_Preparar(LV As ucListView)
3.     Call LV.Initialize
4.     Call LV.InitializeImageListHeader
5.    
6.     Dim i As Integer
7.     If LV.ColumnCount > 0 Then
8.         For i = LV.ColumnCount To 0 Step -1
9.             Call LV.ColumnRemove(i)
10.         Next
11.     End If
12. End Sub
13.  
14. Public Sub LV_Terminar(LV As ucListView)
15.     With LV
16.         Dim nCol As Integer
17.         Dim lCol As Integer
18.         lCol = LV.ColumnCount - 1
19.         For nCol = 0 To lCol
20.             .ColumnIcon(nCol) = -1
21.         Next nCol
22.            
23.         .FullRowSelect = True
24.         .GridLines = True
25.         .BorderStyle = bsThin
26.         .ViewMode = [vmDetails]
27.         .RaiseSubItemPrePaint = True ' Para poner efecto
cebra en las filas
28.    End With
29. End Sub
30.  
31. Public Sub LV_Rellenar(LV As ucListView, rsDatos As
Recordset)
32.     LV.Clear
33.     Dim itemid As Integer
34.     Dim i As Integer
35.     Dim nCols As Integer
36.     Dim s As String
37.     nCols = LV.ColumnCount
38.     Dim colLen() As eColumnAutosizeConstants
39.     ReDim colLen(nCols)
40.     itemid = 0
41.     For i = 1 To nCols
42.         colLen(i) = caHeader
43.     Next
44.     If nCols >= rsDatos.Fields.Count Then nCols =
rsDatos.Fields.Count - 1
45.     ReDim Preserve colLen(nCols)
46.     While Not rsDatos.EOF
47.         If IsNull(rsDatos(0)) Then s = "" Else s = rsDatos(0)
48.         Call LV.ItemAdd(itemid, rsDatos(0), 0, 0)
49.         For i = 1 To nCols
50.             If IsNull(rsDatos(i)) Then s = "" Else s =
rsDatos(i)
51.             Call LV.SubItemSet(itemid, i, s, 0)
52.             If colLen(i) = caHeader Then If Len(s) >
Len(LV.ColumnText(i)) Then colLen(i) = caItem
53.         Next
54.         rsDatos.MoveNext
55.         itemid = itemid + 1
56.     Wend
57.    
58.     For i = 1 To nCols
59.         Call LV.ColumnAutosize(i, colLen(i))
60.         If colLen(i) = caHeader Then LV.ColumnWidth(i) =
LV.ColumnWidth(i) + 24
61.     Next
62. End Sub
63.  
64. Public Sub LV_Ajustar(LV As ucListView)
65.     Dim i As Integer
66.     For i = 1 To LV.ColumnCount - 1
67.         Call LV.ColumnAutosize(i, caHeader)
68.     Next
69. End Sub
70.  
Uso:

Código: Visual Basic

1. Private Sub Form_Load()


2.     ' lstCli = ucListView en el formulario
3.    Call LV_Preparar(lstCli)
4.     With lstCli
5.         Call .ColumnAdd("Nombre", 100, caLeft)
6.         Call .ColumnAdd("Edad", 100, caLeft)
7.     End With
8.     Call LV_Terminar(lstCli)
9.     Call CargarClientes
10. End Sub
11.  
12. Private Sub CargarClientes()
13.     Dim rsDatos as Recordset
14.     '' rellenan rsDatos
15.  
16.      ' Si la consulta salio bien (hay filas para mostrar)
17.     Call RellenarListView(lstCli, rsDatos)
18.      ' Si la consulta dio vacia o salio mal
19.     Call LV_Ajustar(lstCli)
20. End Sub
21.  
22. Private Sub lstCli_OnSubItemPrePaint(ByVal Item As Integer,
ByVal SubItem As Integer, TextBackColor As Long, TextForeColor As
Long, Process As Boolean)
23.     ' Efecto cebra!
24.    If (Item Mod 2) Then
25.         TextBackColor = RGB(220, 220, 220)
26.         TextForeColor = RGB(0, 0, 0)
27.         Process = True
28.     End If
29. End Sub
30.  

Y listo 

Curso completo de Visual Basic.Net desde cero, bienvenidos les sugiero a todos los
que se inician a programar aplicaciones Windows Forms que sigan este Tutorial
completo, en este vídeo se detalla el uso del control tooltip para mostrar mensajes
de ayuda en nuestras interfaces en el lenguaje de programación Visual Basic,
crearemos una pequeña aplicación para mostrar mensajes de ayuda en Visual Basic.

Pueden consultar toda la documentación respectiva (Diapositivas, textos, vídeos,


códigos fuentes, librerías, etc.) de este conjunto de 32 posts.

Pueden ver los vídeos directamente en youtube:


https://www.youtube.com/watch?
v=KExHrvtkugE&index=12&list=PLZPrWDz1MoloGD4irFB-YMIKvUYNu1i3m

Visita nuestro canal en youtube y revisa cursos de Desarrollo de software y aprende a


diseñar sistemas informáticos totalmente gratis:

www.youtube.com/jcarlosad7

Validaciones Mensajes de Ayuda (ErrorProvider, ToolTip)

ToolTip

Muestra Información cuando el usuario mueve el puntero sobre el control asociado.

Problema 9:
Crear un programa que permita ingresar de manera obligatoria los nombres, la edad
y el salario de una persona; además todos los campos de texto deben de tener un
mensaje emergente que ayude al usuario final con el contenido que debe ingresar.

Código de los mensaje de ayuda en cada evento MouseHover de los controles

Private Sub txtnombres_MouseHover(sender As Object,
e As EventArgs) Handlestxtnombres.MouseHover
        ttmensaje.SetToolTip(txtnombres, "Ingrese aquí el nombre del
usuario")
        ttmensaje.ToolTipTitle = "Nombre del Usuario"
        ttmensaje.ToolTipIcon = ToolTipIcon.Info
End Sub
Private Sub txtedad_MouseHover(sender As Object,
e As EventArgs) Handles txtedad.MouseHover
        ttmensaje.SetToolTip(txtedad, "Ingrese aquí la edad del
usuario")
        ttmensaje.ToolTipTitle = "Edad del Usuario"
        ttmensaje.ToolTipIcon = ToolTipIcon.Info
End Sub

Private Sub txtsalario_MouseHover(sender As Object,
e As EventArgs) Handlestxtsalario.MouseHover
        ttmensaje.SetToolTip(txtsalario, "Ingrese aquí el salario del
usuario")
        ttmensaje.ToolTipTitle = "Salario del Usuario"
        ttmensaje.ToolTipIcon = ToolTipIcon.Info

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
Try

Dim bcvend As String


bcvend = Trim(InputBox("Teclee nombre de Vendedor",
"Busqueda"))
Dim conex As New
SqlConnection(ConfigurationManager.ConnectionStrings("CONEXION").Connecti
onString)

Dim adaptador As New SqlDataAdapter("Select * From vendedor


Where @ven_des='" & bcvend.Trim & "'", conex)
conex.Open()
adaptador.Fill(ds, "vendedor")
If ds.Tables("vendedor").Rows.Count = 0 Then
MsgBox("No se encontró el registro buscado", 64,
"Mensaje")

Else

Dim dr As DataRow
dr = ds.Tables("vendedor").Rows(0)
TextBox2.Text = dr("@cod_ven").ToString
TextBox3.Text = dr("@ven_des").ToString
TextBox4.Text = dr("@telefonos").ToString
TextBox5.Text = dr("@direc1").ToString
Fecha_regDateTimePicker.Text = dr("@fecha_reg").ToString
TextBox6.Text = dr("@email").ToString

End If
conex.Close()
Catch ex As Exception
MsgBox(ex.Message)
MsgBox("Datos consultados")
End Try

End Sub

S-ar putea să vă placă și