none
Updatede tabela Access em VB2008 RRS feed

  • Pergunta

  • Estou desenvolvendo um rotina para alterar um campo (Validade) de uma tabela Access em VB2008. Arorina é a seguinte:

    Imports System
    Imports System.Data.OleDb
    Public Class Validade

        Private Sub Validade_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: This line of code loads data into the 'SocioBeneficiosDataSet.Socios' table. You can move, or remove it, as needed.
            Dim Conexao As OleDbConnection
            Conexao = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;DataSource=c:\Validade\validade\Validade\SocioBeneficios.mdb")
            Try
                Conexao.Open()
            Catch ex As Exception
                '  MsgBox("ex.GetBaseException")
            End Try
            Dim daSocios As New OleDbDataAdapter
            Dim scomando As String
            scomando = ("Select * from Socios")
            Dim dsTeste As New DataSet("Socios")
            Dim objCommandBuilder As New OleDb.OleDbCommandBuilder(daSocios)
            daSocios.FillSchema(dsTeste, SchemaType.Source, "Clientes")
            daSocios.Fill(dsTeste, "Socios")
            'Alterar dados
            daSocios.Update(dsTeste, "Socios")
        End Sub

    Ao executa-la recebo aseguinte mensagem:

    The SelectCommand property has not been initialized before calling 'FillSchema'.

    O que está errado? Sou iniciante em VB2008
    Grato por ajuda
    quarta-feira, 24 de fevereiro de 2010 15:15

Respostas

Todas as Respostas

  • pelo que vi parece que vc criou o comando do tipo string não do tipo oledbcommand

      Dim scomando As String
            scomando = ("Select * from Socios")
     ficaria assim

    scomando = New OleDbCommand("Select * from Socios",conexao)

    quarta-feira, 24 de fevereiro de 2010 15:26
  • Prezado,

    Acredito que estes exemplos te ajudarão:

    http://www.startvbdotnet.com/ado/msaccess.aspx
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quarta-feira, 24 de fevereiro de 2010 16:01
    Moderador
  •  Dim ok As String = "Select * from Table_OBS"

            If DataSet1.HasChanges() Then

                Dim command_builder As SqlCommandBuilder

                ' Create the DataAdapter.
                Dim data_adapter As New SqlDataAdapter(ok, My.Settings.ConnectMe)

                ' Map Table to Contacts.
                data_adapter.TableMappings.Add("Table", "Table_OBS")

                ' Make the CommandBuilder generate the
                ' insert, update, and delete commands.

                command_builder = New SqlCommandBuilder(data_adapter)

                data_adapter.Update(DataSet1)

            End If


    Just Be Humble Malange!
    quarta-feira, 24 de fevereiro de 2010 18:10
    Moderador
  • Estou desenvolvendo um rotina para alterar um campo (Validade) de uma tabela Access em VB2008. Arorina é a seguinte:

    Imports System
    Imports System.Data.OleDb
    Public Class Validade

        Private Sub Validade_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: This line of code loads data into the 'SocioBeneficiosDataSet.Socios' table. You can move, or remove it, as needed.
            Dim Conexao As OleDbConnection
            Conexao = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;DataSource=c:\Validade\validade\Validade\SocioBeneficios.mdb")
            Try
                Conexao.Open()
            Catch ex As Exception
                '  MsgBox("ex.GetBaseException")
            End Try
            Dim daSocios As New OleDbDataAdapter
            Dim scomando As String
            scomando = ("Select * from Socios")
            Dim dsTeste As New DataSet("Socios")
            Dim objCommandBuilder As New OleDb.OleDbCommandBuilder(daSocios)
            daSocios.FillSchema(dsTeste, SchemaType.Source, "Clientes")
            daSocios.Fill(dsTeste, "Socios")
            'Alterar dados
            daSocios.Update(dsTeste, "Socios")
        End Sub

    Ao executa-la recebo aseguinte mensagem:

    The SelectCommand property has not been initialized before calling 'FillSchema'.

    O que está errado? Sou iniciante em VB2008
    Grato por ajuda
    Andre Alves Lima

    Segui o exemplo que me sugeriu para recuperar registros no site:
    Entretanto o programa nãp listou os campos nas textbox.
    No debug no output recebi a seguinte mensagem repetida varias vezes(suponho que uma para cada registro) :
    "A first chance exception of type 'System.InvalidCastException' occurred in WindowsApplication1.exe"
    Como o programa não executou fiquei sem saber o que fazer.
    Alguma nova ajuda?
    Grato desde já

    sexta-feira, 26 de fevereiro de 2010 19:08
  • Curupira,

    No seu código tem algumas coisas fora de ordem,

    Você abre e fecha o Try e Cath, apenas para abrir a conexão, você pode colocar todo o código de consulta ou update dentro.
    outra coisa que notei é que você está querendo trabalhar com DataAdapter, então segue um exemplo.

    http://www.macoratti.net/vbn_dat1.htm

    Pois os exemplos que o Andre lhe passou utiliza apenas o Data Reader.

    att,

    Fernanda

    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    segunda-feira, 1 de março de 2010 13:28
    Moderador