none
Insertar nuevos registros en la Tabla. RRS feed

  • Pregunta

  • Buenas tardes y saludos.

    Me gustaria que me pudieran ayudar a resolver la siguiente cuestion:

    Mediante el codigo siguiente, pretendo insertar los nuevos registros en la Tabla1 procedentes de la Tablatemporal -creada en tiempo de ejecución.-

            Try
                Using con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Users\Josep\Documents\Dataset.accdb")
                    Dim query As String = "SELECT * FROM Tabla1 ORDER by Fecha "
                    con.Open()
                    Dim cmd As New OleDbCommand(query, con)
                    Dim da As New OleDbDataAdapter(cmd)
                    Dim ds As DataSet = New DataSet
                    Dim Dt As DataTable = New DataTable("TablaCsv")
                    da.Fill(Dt)
                    query = "INSERT INTO Tabla1 SELECT * Tabla1 FROM Tablatemporal "
                    cmd = New OleDbCommand(query, con)
                    Dim n As Integer = cmd.ExecuteNonQuery()
                    MessageBox.Show("Nº de registros exportados: " & CStr(n))
    
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                 End Try

    Creo que el problema esta en la sintaxis del comando INSERT INTO, que no logro escribir adecuadamente.

    Por otro lado me gustaria disponer de algun codigo que mediante el metodo merge, pudiera realizar la misma tarea, o sea llevar los registros de una tabla creada de forma temporal a una tabla fisica del Dataset.

    Les quedo agradecido de antemano por sus respuestas,

    Saludos,

    Josep.

    • Cambiado Enrique M. Montejo miércoles, 8 de octubre de 2014 15:28 Pregunta relacionada con el acceso a datos.
    domingo, 5 de octubre de 2014 18:20

Todas las respuestas

  • hola

    no sera que quieres usar el

    SELECT…INTO Statement (Microsoft Access SQL)

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 5 de octubre de 2014 20:11
  • hola... He visto un error de sintaxis

    cambia

    query = "INSERT INTO Tabla1 SELECT * Tabla1 FROM Tablatemporal "
                    por

    query = "INSERT INTO Tabla1 SELECT * FROM Tablatemporal "
                    o sea elimina el segundo Tabla1


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    lunes, 6 de octubre de 2014 1:59
  • pero ten en cuenta que Tabla1 y TablaTemporal deben tener el mismo esquema es decir los mismos números y tipo de cada campo para que te funciones esa consulta.

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    lunes, 6 de octubre de 2014 2:03
  • hola

    no sera que quieres usar el

    SELECT…INTO Statement (Microsoft Access SQL)

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Gracias, Leandro.

    No, solo quiero usar el Insert Into y en ese enlace habla del SELECT...

    Josep.

    lunes, 6 de octubre de 2014 16:49
  • La forma correcta es

    INSERT INTO Tabla1(tu_campo) 
    SELECT 
    tu_campo 
    FROM Tablatemporal


    Integridad y Liderazgo

    Gracias por tu respuesta. Deseo traspasar todos los campos por registro de una tabla a otra .... y tu codigo no lo consigue.

    Josep.

    lunes, 6 de octubre de 2014 16:51
  • hola... He visto un error de sintaxis

    cambia

    query = "INSERT INTO Tabla1 SELECT * Tabla1 FROM Tablatemporal "
                    por

    query = "INSERT INTO Tabla1 SELECT * FROM Tablatemporal "
                    o sea elimina el segundo Tabla1


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    Hola y Gracias. Tu codigo ya lo habia probado antes de poner el post y no me funcionaba. Nuevamente lo he probado y continua sin funcionar dandome el siguiente error:

    Gracias, alguna sugerencia... más. Gracias,

    Josep.

    P.D. Los campos son coincidentes tanto en nombre como en propiedades.


    • Editado JoséMiguel lunes, 6 de octubre de 2014 16:56
    lunes, 6 de octubre de 2014 16:55