none
como ver reflejados los cambios en una base de dato access que se le realizaron cambios desde un form visual basic .net? RRS feed

  • Pregunta

  • Buena tarde

    Hola les cuento para los que han respondido mis prenguntas que estoy perdida...

    Como puedo a través de consutas sql modificar, actualizar, imprimir y eliminar (Conozco las sentencias sql) pero no se como hacer

    sentenciaSql =

    "delete FROM usuario where cod_usu = " & codigo, no sé si esa sentencia la está ejecutando, o cuando hago inster si la inserta, pues no toma los cambios que le doy. Ya puedo consultar todos los registros o uno solo. Pero modificar, insertar o eliminar ni idea si están bien porque no sé cómo refrescar o hacer que tome los cambios.

    Cordialmente,


    Gracias, WebLatina Con muchas ganas de aprender
    • Cambiado Enrique M. Montejo domingo, 8 de mayo de 2011 15:38 acceso a datos (De:Lenguaje VB.NET)
    lunes, 5 de octubre de 2009 19:18

Todas las respuestas

  • ¿Qué cadena de conexión estás utilizando en tu proyecto de Visual Basic?

    Si por casualidad es la siguiente

    Public cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
      "Data Source=C:\Documentos\Software\net\egresadosM\egresados\egresados BD.accdb;Persist Security Info=False"

    En la base "egresados BD.accdb" existente en la ruta especificada, es donde se efectúan las modificaciones efectuadas, siempre y cuando la sintaxis de las consultas SQL de acción sean correctas, claro está.


    Enrique Martínez [MS MVP - VB]
    martes, 6 de octubre de 2009 11:22
  • hola

    cuando comentas que no se refrecan esto sucede en tu aplciacion?
    o te refires a la db

    o sea si ejutas el insert o delete, y vas a la tabla en la db, visualizas el cambio?
    mas alla que en la aplicacion no lo ves

    si esto lo confirmas puede ser simplemente un tema de actualizacion o refresh de los datos en la aplicacion, pero seria bueno confirmar si en la db se produce la actualziacion que ejecutas

    - tu db era Sql Compact no?

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 6 de octubre de 2009 13:36
  • "Leandro Tuttini" me preguntó:

    > cuando comentas que no se refrecan esto sucede en tu aplciacion?
    > o te refires a la db

    No, si el problema no lo tengo yo. El problema es del usuario llamado WebLatina. :-D




    Enrique Martínez [MS MVP - VB]
    martes, 6 de octubre de 2009 13:40
  • Hola

    He intentado de todas las maneras que me ha dicho y las que he investigado, pero ninguna me sale.

    1.  Hice una conexión entrando al menú herramientas,  conectar con BD y salió bien hice la conexion con mi base de datos de access 2007, Luego cree un dataset, ingresando por Datos-Agregar origenes de datos y por medio de el generador de consultas cree un tablaAdapter para consultar todos los registros, y estos los puse en un dataGrid. Hasta ahí todo muy bien, pero cuando intenté hacer una TableAdapter para buscar un solo registro hice el siguiente SQL por genador de expresiones

    select * from egresados
    where nom_egre  like @Nombre

    Error en la cláusula WHERE junto a '@'.
    No se puede analizar el texto de la consulta.

    2. Como eso no funcionó intente con:

    Imports System.Data.OleDb 'name space

    Module Module1

        ' Definimos la cadena de conexi¢n

        Public cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documentos\Software\net\egresadosM\egresados\egresados BD.accdb;Persist Security Info=False"

        ' Definimos la sentencia SQL

        Public sentenciaSql As String

        ' Definimos el adaptador de datos

        Public adaptador As New OleDbDataAdapter(sentenciaSql, cadenaConexion)

        ' Declaramos un objeto DataTable

        Public tablaDatos As New DataTable

    End Module

     

    'esto va en el formulario

    Private Function GetDataAccess2007() As DataTable

     

      Dim codigo As Integer

      codigo = CInt(txt_elim.Text)

      sentenciaSql = "select FROM usuario where cod_usu = " & codigo

      adaptador.Fill(tablaDatos)

      ' Devolvemos los datos

            Return tablaDatos
    End Function

    Y funciona, pero para buscar un registro o varios pero la verdad no se si sirve para modificar, eliminar o insertar, porque al cambiar la variable sentenciaSQL = insert ..... no arroja error, pero tampoco hace cambios en la base de datos.

    3. El último intento fue con:

    Dim oOleDbConnection As OleDb.OleDbConnection

            Dim sConnString As String

            Dim ssql As String

            sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documentos\Software\net\egresadosM\egresados\egresados BD.accdb;Persist Security Info=False""Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documentos\Software\net\egresadosM\egresados\egresados BD.accdb;Persist Security Info=False"

            oOleDbConnection = New OleDb.OleDbConnection(sConnString)

            oOleDbConnection.Open()

            ssql = "select * from usuario"

            Dim comandosql As New OleDb.OleDbCommand(ssql, oOleDbConnection)

            comandosql.ExecuteNonQuery()

            oOleDbConnection.Close()


    Pero no se con este codigo como poner los datos en un dataGrid.

    He buscado por todas partes pero nada :(


    Cordialmente,


    Gracias, WebLatina Con muchas ganas de aprender
    martes, 6 de octubre de 2009 19:38
  • hola

    pero estas ejecutando un comando SELECT, ese no se corresponde con el metodo ExecuteNonQuery

    te aconsejaria le des una mirada a este link:
    Recuperaci ó n y modificaci ó n de datos en ADO.NET

    Ejemplo de acceso a datos con una base de Access

    ADO.NET Application using MS Access 2007 database


    ADO.NET  


    Pero basicamente lo que deberias utilizar es el:

    Dim reader As OleDbDataReader = comandosql.ExecuteReader()

    OleDbCommand.ExecuteReader

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 6 de octubre de 2009 19:50