none
PASAR VALORES ENTRE BASE DE DATOS RRS feed

  • Pregunta

  • hola a todos, les agradezco ayudarme en el siguiente problema: tengo dos base de datos de access 2010 y quiero mediante programacion en vb.net pasar los registros que sera buscado con una determinado query en sql a otra base de datos; si me pueden ayudar de antemano gracias.
    martes, 14 de julio de 2015 17:34

Respuestas

  • "Rolando Salvatierra" preguntó:

    > tengo dos base de datos de access 2010 y quiero mediante programacion
    > en vb.net pasar los registros que sera buscado con una determinado
    > query en sql a otra base de datos;

    Hola, Rolando:

    A esa operación normalmente se la suele denomina exportar datos de una base de datos a otra.

    Adapta a tus necesidades el siguiente ejemplo:

    Imports System.Data.OleDb
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Try
                ' Cadena de conexión con la base de datos de origen.
                '
                Dim cadenaConexion As String = _
                    "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                    "Data Source=C:\Mis documentos\Database1.accdb;" & _
                    "Jet OLEDB:Database Password=AAAAAA"
    
                ' Establecemos una conexión con la base de datos de origen
                '
                Using cnn As New OleDbConnection(cadenaConexion)
    
                    ' Creamos el comando.
                    '
                    Dim cmd As OleDbCommand = cnn.CreateCommand()
    
                    ' Especificamos la consulta SQL que ejecutará el comando. En el siguiente
                    ' ejemplo, vamos a exportar todos los clientes cuyo identificador de cliente
                    ' sea mayor o igual al valor especificado en el control TextBox1.
                    '
                    cmd.CommandText = _
                        "INSERT INTO Clientes " & _
                        "IN ''[MS Access;DATABASE=C:\Mis documentos\Database2.accdb;PWD=BBBBB] " & _
                        "SELECT * FROM Clientes WHERE IdCliente >= @idCliente"
    
                    ' Añadimos el único parámetro de entrada existente, y
                    ' cuyo valor se ha especificado en un control TextBox.
                    '
                    cmd.Parameters.AddWithValue("@idCliente", TextBox1.Text)
    
                    ' Abrimos la conexión
                    '
                    cnn.Open()
    
                    ' Ejecutamos el comando.
                    '
                    Dim n As Integer = cmd.ExecuteNonQuery()
    
                    ' Mostramos el número de registros afectados.
                    '
                    Dim msg As String = String.Format("Se han exportado {0} registros.", n)
                    MessageBox.Show(msg)
    
                End Using
    
            Catch ex As Exception
                ' Se ha producido un error.
                MessageBox.Show(ex.Message)
    
            End Try
    
        End Sub
    

    En éste ejemplo nos conectamos con la base de datos de origen (Database1.accdb) y exportamos a la tabla Clientes de la base de datos de destino (Database2.accdb), todos los clientes cuyo identificador sea igual o superior al valor escrito en un control TextBox, por lo que deberás de adaptar la consulta SQL a la que realmente deseas ejecutar, con la salvedad que la consulta SQL del ejemplo asume que la estructura de las dos tablas es idéntica. Ni que decir tiene que la tabla de la base de destino tiene que existir, porque de no ser así, pocos registros vas a poder exportar, como bien creo que podrás comprender.

    Para más detalles sobre la consulta INSERT INTO, échale un vistazo a la siguiente conversación:

    Como puedo guardar datos de un dataset a la base de datos

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    miércoles, 15 de julio de 2015 21:15
    Moderador

Todas las respuestas

  • Saludos:

    Solo tienes que traer los datos de la primera BD a un objeto (DataTable por ejemplo) y despues actualizar la segunda DB con los datos de ese objeto.

    Espero ayude.

    JOSE LUIS


    Dios NO los llamo LAS DIEZ RECOMENDACIONES

    • Propuesto como respuesta PIO DEVELOPER miércoles, 15 de julio de 2015 16:56
    miércoles, 15 de julio de 2015 16:13
  • "Rolando Salvatierra" preguntó:

    > tengo dos base de datos de access 2010 y quiero mediante programacion
    > en vb.net pasar los registros que sera buscado con una determinado
    > query en sql a otra base de datos;

    Hola, Rolando:

    A esa operación normalmente se la suele denomina exportar datos de una base de datos a otra.

    Adapta a tus necesidades el siguiente ejemplo:

    Imports System.Data.OleDb
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Try
                ' Cadena de conexión con la base de datos de origen.
                '
                Dim cadenaConexion As String = _
                    "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                    "Data Source=C:\Mis documentos\Database1.accdb;" & _
                    "Jet OLEDB:Database Password=AAAAAA"
    
                ' Establecemos una conexión con la base de datos de origen
                '
                Using cnn As New OleDbConnection(cadenaConexion)
    
                    ' Creamos el comando.
                    '
                    Dim cmd As OleDbCommand = cnn.CreateCommand()
    
                    ' Especificamos la consulta SQL que ejecutará el comando. En el siguiente
                    ' ejemplo, vamos a exportar todos los clientes cuyo identificador de cliente
                    ' sea mayor o igual al valor especificado en el control TextBox1.
                    '
                    cmd.CommandText = _
                        "INSERT INTO Clientes " & _
                        "IN ''[MS Access;DATABASE=C:\Mis documentos\Database2.accdb;PWD=BBBBB] " & _
                        "SELECT * FROM Clientes WHERE IdCliente >= @idCliente"
    
                    ' Añadimos el único parámetro de entrada existente, y
                    ' cuyo valor se ha especificado en un control TextBox.
                    '
                    cmd.Parameters.AddWithValue("@idCliente", TextBox1.Text)
    
                    ' Abrimos la conexión
                    '
                    cnn.Open()
    
                    ' Ejecutamos el comando.
                    '
                    Dim n As Integer = cmd.ExecuteNonQuery()
    
                    ' Mostramos el número de registros afectados.
                    '
                    Dim msg As String = String.Format("Se han exportado {0} registros.", n)
                    MessageBox.Show(msg)
    
                End Using
    
            Catch ex As Exception
                ' Se ha producido un error.
                MessageBox.Show(ex.Message)
    
            End Try
    
        End Sub
    

    En éste ejemplo nos conectamos con la base de datos de origen (Database1.accdb) y exportamos a la tabla Clientes de la base de datos de destino (Database2.accdb), todos los clientes cuyo identificador sea igual o superior al valor escrito en un control TextBox, por lo que deberás de adaptar la consulta SQL a la que realmente deseas ejecutar, con la salvedad que la consulta SQL del ejemplo asume que la estructura de las dos tablas es idéntica. Ni que decir tiene que la tabla de la base de destino tiene que existir, porque de no ser así, pocos registros vas a poder exportar, como bien creo que podrás comprender.

    Para más detalles sobre la consulta INSERT INTO, échale un vistazo a la siguiente conversación:

    Como puedo guardar datos de un dataset a la base de datos

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    miércoles, 15 de julio de 2015 21:15
    Moderador