
| |||
![]() hola amigos, tengo dos tablas, tabla A y tabla B, son idénticas, una recibe datos externos, la otra los recibe de la tabla que recibe datos externos, imaginemos que la tabla A recibe datos externos y ahora los quiero volcar a la tabla B, hasta ahí todo perfecto...pero hay un campo que se llama FECHA y quiero que si la fecha ya existe no pase datos de la tabla A a la tabla B, que solo pase los datos que no están repetidos llevo un mes con esto, alguien puede ayudarme...where no funciona y counto y distinct tampoco.... ![]() |
| |||
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() |
Etiquetas: |