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]Alterar registros ou Inserir simultaneamente em duas tabelas

    avatar
    acas-acas
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 11/07/2017

    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  acas-acas 11/7/2017, 17:40

    Prezados, estou com um bd quase pronto, mas tenho um problema em uma VB que é executada quando o botão é clicado.

    Eu quero Inserir ou Atualizar duas tabelas simultaneamente, mas eu só consigo inserir. Tem como colocar as duas funções no mesmo botão.

    Segue o código que estou usando no botão, ele está funcionando só para inserir dados que não existem:


    Private Sub BtnSalvar_Click()

    DoCmd.RunSQL "INSERT INTO fornecedores(empresa,nome,sobrenome,cargo) SELECT nome,territorio,nome_gedt,nome_cdt FROM Usuario WHERE NOT EXISTS(select * from fornecedores where usuario.territorio = fornecedores.nome)"


    End Sub
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty Re: [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  Phillip_Junior 11/7/2017, 19:21

    Olá

    Deixa eu ver se entendi!

    Vc quer que ao executar o comando ele verifique na tabela se o valor existe sim ou não, e se existe ele atualiza o valor, caso não exista ele adiciona esse valor.

    É isso ?

    Informações necessárias. Esses valores a serem verificados nessa tabela para serem adicionados ou atualizados estão num formulário ?
    Esse formulário está relacionado a essa tabela ?

    Se for isso, será necessário criar uma condição para verificar se o valor existe na tabela.
    Se existe valor x na tabela atualiza, se não existe adiciona.


    Explique melhor o mecanismo dos valores que estão sendo adicionados na execução de
    DoCmd.RunSQL "INSERT INTO fornecedores(empresa,nome,sobrenome,cargo) SELECT nome,territorio,nome_gedt,nome_cdt FROM Usuario WHERE NOT EXISTS(select * from fornecedores where usuario.territorio = fornecedores.nome)".

    para podermos lhe ajudar com o código de condição.

    aguardo




    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    acas-acas
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 11/07/2017

    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  acas-acas 11/7/2017, 19:41

    Vc quer que ao executar o comando ele verifique na tabela se o valor existe sim ou não, e se existe ele atualiza o valor, caso não exista ele adiciona esse valor.

    É isso ?

    xxxxxxxxxxxxxxxxxxx

    É exatamente isso.

    xxxxxxxxxxxxxxx


    Bom eu sou novo nesta questão de programação no ACCESS, então eu peguei um BD com o formato que eu estava interessado e fui fazendo as minhas alterações.


    Eu criei um formulário de cadastro de usuários, e eu quero que alguns dados como território, empresa... que é inserido/atualizado na tabela de usuário, fosse replicado na tabela de fornecedores.

    Se tiver alguma outra opção que possa fazer esta relação estou a disposição para aprender, mas atualmente com pouco tempo para concluir este projeto.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty Re: [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  Phillip_Junior 11/7/2017, 20:36

    Olá

    Vejamos se eu entendi:

    Você criou um formulário de cadastro de usuários, e vc quer que alguns dados como território, empresa... que é inserido na tabela de usuário fossem também adicionados na
    na tabela de fornecedores.
    Mas caso esses dados já existam na tabela de usuário ele não adiciona nem na tabela de usuários nem na tabela de fornecedores.

    Presumindo que seja isso:

    Criamos uma condição:


    Insira esse código adaptando ele conforme a sua necessidade no evento onde já está o código para adicionar o registro. Você deve substituir pelo anterior.

    Private Sub BtnSalvar_Click()

    Dim nometerritorio As String
    Dim nomeempresa As String

    'Altere o nome dos campos conforme estão no seu formulário.
    nometerritorio = (Nz(Me.nomedocampoterritorionoformulario.Value, ""))
    nomeempresa = (Nz(Me.nomedocampoempresanoformulario.Value, ""))

    If existeusuario(nometerritorio, nomeempresa) Then

    MsgBox "Já existe os dados cadastrados" & vbCrLf & vbCrLf & "Os dados não serão registrados na tabela usuário nem tabela fornecedores.", vbCritical + vbOKOnly, "ATENÇÃO"
    MsgBox "Vc pode se assim for conveniente pedir que seja buscado nessa tabela os dados registrados e vc apresente eles nos campos do próprio formulário e altere os dados", _
    vbCritical + vbOKOnly, "ATENÇÃO"
    Else

    CurrentDb.Execute "INSERT INTO NomeTabelaUsuario(NomeDoCampoDaTabela, NomeDoCampoDaTabela) VALUES('" & Me.NomeCampoDoForm & "', '" & Me.NomeCampoDoForm & "'")

    CurrentDb.Execute "INSERT INTO NomeTabelaFornecedores(NomeDoCampo1DaTabela, NomeDoCampo2DaTabela) VALUES('" & Me.NomeCampo1DoForm & "', '" & Me.NomeCampo2DoForm & "'")

    End If

    End Sub

    ' Função que irá localizar os dados existentes na tabela

    Public Function existeusuario(strterritorio As String, strempresa As String) As Boolean

    'On Error GoTo deu_erro

    Dim rst As dao.Recordset
    Dim sql As String
    ' Altere o nome da tabela e dos campos na tabela

    sql = "SELECT * FROM [nomedatabela] US WHERE US.[nomedocamponatabela] = '" & strterritorio & "' AND US.[nomedocamponatabela] = '" & strempresa & "'"
    Set rst = CurrentDb.OpenRecordset(sql)

    If rst.BOF And rst.EOF Then
    existeusuario = False

    Else
    existeusuario = True
    End If

    rst.Clone
    Set rst = Nothing

    Exit Function

    'deu_erro:
    'MsgBox Err.Description
    End Function


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    acas-acas
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 11/07/2017

    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  acas-acas 12/7/2017, 12:13

    Grato.

    Funcionou.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty Re: [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  Phillip_Junior 12/7/2017, 13:15

    Que Bom! Obrigado pelo retorno.
    O fórum agradece.


    .................................................................................
    Phillip_Junior
    Analista de Sistemas

    Conteúdo patrocinado


    [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas Empty Re: [Resolvido]Alterar registros ou Inserir simultaneamente em duas tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 13:08