none
Ayuda con registros duplicados RRS feed

  • Pregunta

  • Como mis registros estan guiados por la fecha es decir este programa crea un registro por dia solamente pero quisiera que si intentan crear otro no los deje como puedo evitar eso?

    domingo, 10 de enero de 2010 3:42

Respuestas

  • hola

    en access tienes una propeidad a nivel de campo que permite definir si admite duplciados o no
    esto hara que si por alguna razon se intenta agregar una fecha que ya existe dara un error la aplicacion
    ya que sera la db la que lo impida

    ma refiero en esta imagen
    al atributo Indexed, alli podras definir que no admita duplicados


    ahora bien tambien seria bueno validarlo a nivel de aplicacion para lo cual podrias ahcer algo como esto


    Private Function ProdExistDate(fecha As DateTime) As Boolean

        Dim result As Boolean = false

        Using cnn As SqlConnection = New SqlConnection("connection string")

            Dim query As String = "SELECT Count(*) As Cant FROM Prod WHERE fecha = @fecha"
           
            Dim cmd As SqlCommand = New SqlCommand(query, cnn)
           
            cmd.Parameters.AddWithValue("fecha", fecha)
           
            cnn.Open()
             
            Dim n As Integer = Convert.ToInt32(cmd.ExecuteScalar())
           
            If n = 0 Then
                result = False
            Else
                result = True
            End If
       
        End Using

        Return result
       
    End Sub


    como verase es un metodo que puedes usar directametne para validar si en la tabla de prod existe ya un registro para esa fecha

    podrias usarlo haciando


    If ProdExistDate(DateTimePicker1.Value) Then
       MessageBox.Show("ya existe un registro para la fecha seleccionada")
       Return
    End If

    ' aqui cointinuarias con tu codigo para insertar el registro ya que no esta para esa fecha


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Xinef domingo, 10 de enero de 2010 8:12
    domingo, 10 de enero de 2010 5:15