MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    lukdogdog
    lukdogdog
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 21/06/2012

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  lukdogdog 27/7/2016, 04:57

    Olá Senhores, tudo bem. Espero que sim
    Me deparei com mais uma grande dúvida que não consigo resolver, pesquisei e não encontrei nada a respeito e se puderem me auxiliar fico muito grato por isso. Então vamos lá;
    Estou precisando fazer com que um form pegue as informações de uma tabela num banco de dados sem vinculo nenhum com o principal.
    Beleza, até aí está tudo bem, quando abre o form ele puxa direitinho as informações, segue o código abaixo:

    Private Sub Form_Open(Cancel As Integer)
    Dim sql As String
    Dim cn As adodb.Connection
    Dim rs As adodb.Recordset
    Set cn = New adodb.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.path & "\Config\sistema.mdb"
    cn.Open
    Set rs = New adodb.Recordset
    sql = "SELECT * FROM configurasistema"
    rs.Open sql, cn
    'Me.Morada.value = removeAcentos(rs(1))
    DescMaximo = rs(0)
    RomaneioSimNao = rs(1)
    OrdemdeservicoSimNao = rs(2)
    'Entregue = rs(3)
    AtendenteSimNao = rs(4)
    DataEntregaSimNao = rs(5)
    FormaRecebimento = rs(6)
    Mecanico = rs(7)
    CFOPSimNao = rs(Cool
    PDV = rs(9)
    LoginVendas = rs(10)
    AbrePDV = rs(13)
    EstoqueZero = rs(14)
    CFOPprincipal = rs(15)
    RepeteItens = rs(16)
    Limiteitens = rs(17)
    QuantItens = rs(18)
    cn.Close
    End Sub

    O meu problema é o seguinte, quero editar essas informações no form, e alterar na mesma tabela não vinculada apertando o botão "salvar" no form, so que sempre da um erro de propriedade invalida, argumento não é opcional, etc...
    tentei diversas formas, ainda não consegui descobrir qual método usar para editar as informações na tabela, lembrando que ela não esta vinculada ao sistema. Segue a ultima tentativa que fiz e observando é mais ou menos parecida com a de cima:

    Private Sub Salvar_Click()
    Dim sql As String
    Dim cn As adodb.Connection
    Dim rs As adodb.Recordset
    Dim db As Database
    Set cn = New adodb.Connection
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.path & "\Config\sistema.mdb"
    cn.Open
    Set rs = New adodb.Recordset
    sql = "SELECT * FROM configurasistema"
    rs.Open sql, cn
    With rs
    rs.EditMode
    rs!DescMaximo = DescMaximo
    rs!RomaneioSimNao = RomaneioSimNao
    rs!OrdemdeservicoSimNao = OrdemdeservicoSimNao
    rs!AtendenteSimNao = AtendenteSimNao
    rs!DataEntregaSimNao = DataEntregaSimNao
    rs!FormaRecebimento = FormaRecebimento
    rs!MecanicoSimNao = Mecanico
    rs!CFOPSimNao = CFOPSimNao
    rs!PDV = PDV
    rs!LoginVendas = LoginVendas
    rs!AbrePDV = AbrePDV
    rs!EstoqueZero = EstoqueZero
    rs!CFOP = CFOPprincipal
    rs!RepeteItens = RepeteItens
    rs!Limiteitens = Limiteitens
    rs!QuantItens = QuantItens
    rs.Update
    End With
    cn.Close
    End Sub

    O erro que dá é que não altera os valores na tabela
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty Re: [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  Dilson 27/7/2016, 05:24

    Use rs.Edit ao invés de rs.EditMode

    Se está usando um bloco with não precisa referenciar rs

    Use assim:

    With rs
    .Edit
    !DescMaximo = DescMaximo



    NOTA: No ADO não existe o uso do método Edit, já no DAO não funciona sem ele.


    Última edição por Dilson em 27/7/2016, 23:37, editado 1 vez(es) (Motivo da edição : Informar sobre inexistência do método Edit no ADO)
    lukdogdog
    lukdogdog
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 21/06/2012

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty Re: [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  lukdogdog 27/7/2016, 14:47

    Olá Dílson, grato pelo contato. Fiz as mudanças que vc disse mas mesmo assim não vai.
    Estou postando o projeto para melhor entendimento.
    Fiz uns testes alterando a programação mesmo assim da erro.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty Re: [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  Dilson 27/7/2016, 14:52

    Eu prefiro nesses casos montar a sql e usar o método execute.

    Qual a mensagem de erro apareceu ?


    lukdogdog
    lukdogdog
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 21/06/2012

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty Re: [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  lukdogdog 27/7/2016, 18:38

    Dílson, finalmente consegui.. Nossa, só por Deus mesmo.. após ficar 6 horas direto quebrando a cabeça deu tudo certo.
    Usei o seguinte método para excluir o que tem e salvar o que esta no formulário.
    Public SQL As String
    Public rs As ADODB.Recordset
    Public mConn As ADODB.Connection
    Public Sub ConectaDB()
    Set mConn = New ADODB.Connection
    mConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\Config\sistema.mdb"
    mConn.Open
    Set rs = New ADODB.Recordset
    Exit Sub
    End Sub

    Public Sub DesconectaDB()
    mConn.Close
    Exit Sub
    End Sub

    Public Sub ImportaSistema()
    Call ConectaDB
    SQL = ""
    SQL = "DELETE * from ConfiguraSistema"
    mConn.Execute SQL

    SQL = "INSERT INTO ConfiguraSistema (DescMaximo, RomaneioSimNao, OrdemdeservicoSimNao, AtendenteSimNao, DataEntregaSimNao, FormaRecebimento, MecanicoSimNao, CFOPSimNao, PDV, LoginVendas, AbrePDV, EstoqueZero, CFOPprincipal, RepeteItens, LimiteItens, QuantItens)"
                                       SQL = SQL & " VALUES ("
                                       SQL = SQL & "'" & DescMaximo.Value & "', "
                                       SQL = SQL & "'" & RomaneioSimNao.Value & "', "
                                       SQL = SQL & "'" & OrdemdeservicoSimNao.Value & "', "
                                       SQL = SQL & "'" & AtendenteSimNao.Value & "', "
                                       SQL = SQL & "'" & DataEntregaSimNao.Value & "', "
                                       SQL = SQL & "'" & FormaRecebimento.Value & "', "
                                       SQL = SQL & "'" & MecanicoSimNao.Value & "', "
                                       SQL = SQL & "'" & CFOPSimNao.Value & "', "
                                       SQL = SQL & "'" & PDV.Value & "', "
                                       SQL = SQL & "'" & LoginVendas.Value & "', "
                                       SQL = SQL & "'" & AbrePDV.Value & "', "
                                       SQL = SQL & "'" & EstoqueZero.Value & "', "
                                       SQL = SQL & "'" & CFOPprincipal.Value & "', "
                                       SQL = SQL & "'" & RepeteItens.Value & "', "
                                       SQL = SQL & "'" & Limiteitens.Value & "', "
                                       SQL = SQL & "'" & QuantItens.Value & "' "
                                       SQL = SQL & ")"
    mConn.Execute SQL
    Call DesconectaDB
    Exit Sub
    End Sub

    Private Sub Savar_Click()
    Call ImportaSistema
    End Sub

    Segue o projeto para quem precisar! Lembrando que tem que usar a referencia Microsoft ActiveX Data Objects 6.1 Library do Visual Basc
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty Re: [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  Dilson 27/7/2016, 20:54

    Olá lukdogdg,

    Ótima atitude a de não desistir, nem esperar e continuar tentando até resolver e, quando resolve disponibiliza o resultado promovendo ajuda mútua na comunidade.

    O fórum agradece.

    Conteúdo patrocinado


    [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela Empty Re: [Resolvido]VBA - Acessando um banco de dados e alterar dados na tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 15:42