Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/07/2011, 11:13
guillebomtrasmiti
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: datos duplicados en tabla

'copia toda la información de introventas a introventasahora según las fechas que se filtren
Public Sub copiaintro()

Dim adapta2 As New OleDbDataAdapter
Dim datavacio As New DataSet

Try
'creo los parametros que uso en el SELECT, para filtrar en el datagridview(dgtotales)
Dim comados = conexion.CreateCommand
comados.CommandType = CommandType.Text
Dim comatres = conexion.CreateCommand
comatres.CommandType = CommandType.Text
Dim comacuatro = conexion.CreateCommand
comacuatro.CommandType = CommandType.Text
Dim comacinco = conexion.CreateCommand
comacinco.CommandType = CommandType.Text
Dim prueba = conexion.CreateCommand
prueba.CommandType = CommandType.Text
Dim prueba2 = conexion.CreateCommand
prueba2.CommandType = CommandType.Text

'inserto en fechasfiltro la información seleccionada por el usuario en fecha para poder comprar si existe con fechasfiltrofinal
comatres.CommandText = "INSERT INTO FechasFiltro SELECT DISTINCT Fecha FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF Group by Fecha"
comatres.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comatres.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

'inserto la información en fechasfiltrofinal de introventasahora para poder comparar con lo que se carga nuevo y así no permitir datos duplicados
comacuatro.CommandText = "INSERT INTO FechasFiltroFinal SELECT DISTINCT Fecha FROM IntroduccionDeVentasAhora WHERE Fecha BETWEEN @FI AND @FF Group by Fecha"
comacuatro.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comacuatro.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

'selecciono los campos iguales en fechasfiltro y fechasfiltrofinal para saber si hay fechas duplicadas y para así la carga de datos en introventasahora
comacinco.CommandText = "SELECT FechasFiltro.Fecha, FechasFiltroFinal.Fecha FROM FechasFiltro,FechasFiltroFinal Where FechasFiltro.Fecha = FechasFiltroFinal.Fecha"
comacinco.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comacinco.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

'borro fechasfiltro para que este nunca se quede con fechas viejas y no permita cargar datos nuevos que si debería dejar cargar
prueba.CommandText = "Delete FROM FechasFiltro"

'borro fechasfiltrofinal para que no se quede información antigua que no permita cargar datos nuevos que no están
prueba2.CommandText = "Delete FROM FechasFiltroFinal"

'inserto en introventasahora las fechas seleccionadas por el usuario de introventas
comados.CommandText = "Insert Into IntroduccionDeVentasAhora SELECT * FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF"
comados.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comados.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))


conexion.Open()
'inserta en la tabla fechasfiltro de introventas para comparar lo nuevo con introventasahora y ver si ya existen las fechas
Dim lecto3 = comatres.ExecuteNonQuery
'inserta en la tabla fechasfiltrofinal desde introventasahora para saber lo que ya hay cargado en la base de datos
Dim rowsAffected = comacuatro.ExecuteNonQuery

'Dim lineasafectadas As New Integer
Dim lineasafectadas As OleDbDataReader
frmProgressbar.Show()
'selecciono los campos iguales entre fechas filtro y fechasfinal
lineasafectadas = comacinco.ExecuteReader
'si las lineas afectadas son false entonces ejecuta por que no hay datos duplicados si es true no permite copiar información
If lineasafectadas.HasRows = False Then
'ejecuto la carga de datos de introventas a introventasahora para hacer fiscal
Dim Lecto1 = comados.ExecuteNonQuery
'borra la tabla filtro fechas para que no se quede la información y de mensaje de datos duplicados cuando ya no lo están
Dim probar = prueba.ExecuteNonQuery
Dim probar2 = prueba2.ExecuteNonQuery
MessageBox.Show("Se han copiado los datos seleccionados entre fechas " + Fecha1.Value.Date.ToString("dd/MM/yyyy") + " y " + Fecha2.Value.Date.ToString("dd/MM/yyyy"), """ AViso GesDreamtPos")
cargacomboMostradores()
cargacomboTerminales()
'LbFechaPrimera.Visible = True
cargafechaslabelprimera1()
'LbFechasultima.Visible = True
cargafechaslabelultima1()
'Lhasta.Visible = True
RadioBTodo.Checked = False
RadioBTodo.Checked = True
frmProgressbar.Close()
Else
frmProgressbar.Show()
MessageBox.Show("!Fechas DUPLICADAS¡, no se realizará la acción, compruebe las fechas en la barra superior de la aplicación", "Aviso datos duplicados GesDreamtPos")
'borra la tabla filtro fechas para que no se quede la información y de mensaje de datos duplicados cuando ya no lo están
Dim probar = prueba.ExecuteNonQuery
Dim probar2 = prueba2.ExecuteNonQuery
frmProgressbar.Close()
End If
Catch
MessageBox.Show("Existe alguna acción realizada incorrectamente", "Aviso GesDreamtPos acción incorrecta en la aplicación")
End Try
conexion.Close()