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


    [Resolvido]Gravação de dados em tabelas diferentes

    avatar
    pcardoso
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 12
    Registrado : 23/01/2013

    [Resolvido]Gravação de dados em tabelas diferentes Empty Gravação de dados em tabelas diferentes

    Mensagem  pcardoso 10/3/2013, 16:50

    Olá.

    Preciso de ajuda para o seguinte:

    Tenho as seguintes tabelas:
    Nomes (ID, Nome)
    Funcoes (ID, Funcao)
    Nomes_Funcoes (ID, NomeID, FuncaoID)

    O que estou a tentar fazer (sem êxito):
    Ao inserir o nome no formulário, existindo um nome repetido, verificar na tabela Nomes_Funcoes se já existe um nome igual para a mesma função; se existir dar mensagem de erro, se não adicionar na tabela.
    Envio ficheiro em anexo para melhor ilustrar.
    É possível darem-me uma ajuda?
    Anexos
    [Resolvido]Gravação de dados em tabelas diferentes AttachmentDatabase2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (25 Kb) Baixado 8 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 17:50

    No evento após atualizar da caixa texto onde se digita o nome:

    Private Sub Nome_AfterUpdate()
    Dim Rs As DAO.Recordset
    Dim StrSQL As String
    Dim strID As Long

    strID = Nz(DLookup("ID", "tblNomes", "Nome = '" & Me.Nome & "'"), 0)

    StrSQL = "SELECT * FROM tblNomes_Funcoes;"

    Set Rs = CurrentDb.OpenRecordset(StrSQL)
    Rs.MoveFirst
    Do While Not Rs.EOF
    If Rs!ID = strID Then
    MsgBox "Nome Encontrado", vbInformation, "Nome Existente"
    Me.Undo
    Exit Do
    End If
    Rs.MoveNext
    Loop
    End Sub


    Agora uma dica importante:

    Corrija suas tabelas e não utilize palavras reservadas do access como:

    Nome, valor, Total etc..
    Isso fatalmente produxirá erro.
    Não coloque tambem palavras reservadas como nome de objetos no form.

    Cumprimentos.
    avatar
    pcardoso
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 12
    Registrado : 23/01/2013

    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  pcardoso 10/3/2013, 18:01

    Obrigado pela resposta rápida e pela dica (pensava que o problema dos nomes reservados só se colocava com os termos em inglês).
    Quanto ao código:
    devo estar a fazer alguma asneira, pois ao inserir aparece-me a mensagem tipo do access para dados duplicados.
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 18:51

    Ei-lo:


    Cumprimentos.
    avatar
    pcardoso
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 12
    Registrado : 23/01/2013

    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  pcardoso 10/3/2013, 19:05

    Obrigada mais uma vez, mas (e peço desde já desculpa por isso) mas não me devo estar a conseguir explicar bem.

    Pegando na tabela de exemplo:
    Eu neste momento tenho a Maria (ID 1 da tabela nomes), que está registada na tabela nome_funcoes (com a funcao 1 (formadadora).
    O que pretendo é que se agora voltar a digitar o nome maria, ao verificar que a maria já existe na tabela nomes, avance para a tabela nome_funcoes e registe lá o id 1 (correspondente à maria) mas com a função 2 (coordenadora).

    estou a ser clara?
    Obrigada
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 19:08

    Shocked Shocked Shocked Shocked Shocked Shocked

    Wait a minute please.

    Basketball Basketball Basketball Basketball
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 19:11

    Uma dúvida...

    Existem 3 funções.... como se escolhera qual registrar a maria?

    Se fossem duas seria simples.. mas são 3 funções... Como escolherá qual das duas restante que ira registrar para maria?

    Cumprimentos.
    avatar
    pcardoso
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 12
    Registrado : 23/01/2013

    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  pcardoso 10/3/2013, 19:19

    Pneso que uma forma de dar a a volta à questão seria:
    como o formulário é coordenadores todos os nomes que inserir serão registados com a função 2;
    para outras funcoes, criaria outros formulários
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 19:32

    Veja se dá para ter um norte... Observe que não é necessário ter o form acoplado a uma tabela.
    Deixe a caixa texto sem nada escrito na Fonte de Controle


    'Criado pelo Usuário PILOTO - Fórum Máximo Access
    'para o PCardoso em 10/03/2013
    Private Sub Nome_AfterUpdate()
    'Declaração de Variáveis
    Dim Rs As DAO.Recordset
    Dim StrSQL As String
    Dim strID As Long

    'Carrego na Variável StrID a ID da Pessoa cujo nome foi digitado na caixa texto se a mesma existe na tblNome
    strID = Nz(DLookup("ID", "tblNomes", "Nome = '" & Me.Nome & "'"), 0)
    'caso o nome não exista na tblNomes, a variável StrID será carregada com o valor 0, checo portanto a variável para
    'que neste caso emita a mensagem e encerre a sub para não dar erro na execução do Código
    If strID = 0 Then MsgBox "Pessoa não encontrada", vbCritical, "Registro Não Encontrado": Exit Sub
    'Carrego a variável com a SQL da tabela
    StrSQL = "SELECT * FROM tblNomes_Funcoes;"
    'Seto o recordset para abrir a SQL
    Set Rs = CurrentDb.OpenRecordset(StrSQL)
    'Movo o Recordset para o primeiro registro
    Rs.MoveFirst
    'Faço um loop no recordset para verificar se a ID do nome digitado está contida no mesmo
    Do While Not Rs.EOF
    'Caso seja encontrado
    If Rs!ID = strID Then
    Dim StrFunc As Long
    StrFunc = Rs!FuncaoID
    'Verifico qual a função da pessoa, em sendo 1 recarrego a variável com a função 2
    If StrFunc = 1 Then StrFunc = 2
    'Verifico qual a função da pessoa, em sendo 2 recarrego a variável com a função 3
    If StrFunc = 2 Then StrFunc = 3
    'Crio um novo registro baseado na ID da pessoa com a nova função, convem frisar que se a função for 3 será mantida
    'podes apartir dai modificar para como desejar a escolha da função conforme teus critério
    CurrentDb.Execute "INSERT INTO tblNomes_Funcoes (NomeID, FuncaoID) Values (""" & Rs!ID & """, """ & StrFunc & """)"
    'Encerra o Loop
    Exit Do
    End If
    'Vai para o próximo registro
    Rs.MoveNext
    Loop
    End Sub


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 19:35

    pode ser apenas um form, com uma caixa de combinação baseada na tabela funções, que seleciona qual o cargo antes de digitar o nome...

    Ai de acordo com o cargo escolhido, grava o ID do mesmo no FuncaoID

    Cumprimentos.
    avatar
    pcardoso
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 12
    Registrado : 23/01/2013

    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  pcardoso 10/3/2013, 19:45

    Valeu!!!
    E acima de tudo, muito obrigado pelo cuidado em documentar todos os passos; para uma principante em access, como é o meu caso, estas explicações são de grande ajuda.
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 19:55

    Veja tudo em apenas um form:

    1 - Escolha a funcão: Formador
    2 - Digite o nome Maria
    3 - Clique no botão


    Depois faça o mesmo selecionado o Cargo: Coordenador.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 20:00

    Espero que tenha Servido a contento.

    Não se esqueça de clicar no joinha da mensagem que a auxiliou.

    Bom trabalho.

    Cumprimentos.
    avatar
    pcardoso
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 12
    Registrado : 23/01/2013

    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  pcardoso 10/3/2013, 20:04

    Muito obrigado mesmo!
    avatar
    Convidado
    Convidado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Convidado 10/3/2013, 20:55

    O Fórum agradece o retorno.

    Conteúdo patrocinado


    [Resolvido]Gravação de dados em tabelas diferentes Empty Re: [Resolvido]Gravação de dados em tabelas diferentes

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/5/2024, 16:23