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]Adicionar registo em tabela...verificação de existência

    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 7/8/2011, 04:22

    Boa noite, não sou grande conhecedor de vba, mas tenho o seguinte código:

    !--
    Código:
    Private Sub btadicionar_Click()
    Dim db As Database
        Dim rs As Recordset
        Dim Resposta
       
        Resposta = MsgBox("Confirma a entrada de novo registo?", vbYesNo + vbCritical + vbDefaultButton1, "Confirmação")
        If Resposta = vbYes Then
           
        Set db = CurrentDb
        Set rs = db.OpenRecordset("artista", dbOpenDynaset)
       
        rs.AddNew
        txtCodigo.SetFocus
        rs!artista_id = txtCodigo.Text
        txtNome.SetFocus
        rs!nome = txt_novo_artista
        rs.Update
        txt_novo_artista.SetFocus
        txt_novo_artista = ""
        txtCodigo.SetFocus
        txtCodigo = rs.RecordCount + 1
       
        rs.Close
        db.Close
        DoCmd.Close
        Else
            Me.txt_novo_artista.Value = ""
            DoCmd.CancelEvent
         
        End If
    End Sub
    --!

    o qual adiciona um registo à tabela, eu queria criar uma verificação que impedisse que fossem criados registos com o campo "nome" igual, só que não percebo muito de vba, calculo que seja com um if e/ou ciclo for...

    se alguem poder ajudar
    muito obrigado
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  criquio 7/8/2011, 05:01

    E nunca terá dois nomes iguais? Bem, pode fazer conforme abaixo. Retirei algumas linhas que são desnecessárias. Não precisa coloca o foco em cada campo:

    Código:
    Private Sub btadicionar_Click()
    Dim db As Database
        Dim rs As Recordset
        Dim Resposta
       
        Resposta = MsgBox("Confirma a entrada de novo registo?", vbYesNo + vbCritical + vbDefaultButton1, "Confirmação")
        If Resposta = vbYes Then
           
        Set db = CurrentDb
        Set rs = db.OpenRecordset("artista", dbOpenDynaset)
       
        rs.AddNew
        rs!artista_id = txtCodigo.Text
        if Not IsNull(DLookup("nome", "artista", "nome='" & Me.txt_novo_artista & "'") Then
        MsgBox "Já existe uma artista com esse nome", vbOkOnly + vbCritical, "Atenção"
        Exit Sub
        Else
        rs!nome = txt_novo_artista
        End If
        rs.Update
        txt_novo_artista = ""
        txtCodigo = DMax("Código", "artista") + 1
       
        rs.Close
        db.Close
        DoCmd.Close
        Else
            Me.txt_novo_artista.Value = ""
            DoCmd.CancelEvent
         
        End If
    End Sub

    Observe que tambem troquei o txtCodigo = rs.RecordCount + 1 por Me.txtCodigo = DMax("Código", "artista") + 1. É meio complicado você usar o RecordCount porque ele conta o número de registros. Se algum deles for excluído por alguma razão, vai dar erro na gravação do novo registro. Outra coisa, quando estiver fazendo referência a um controle do formulário, coloque o Me. antes para ele ter certeza que se tratar de m controle do formulário, pois se você colocar apenas o nome e tiver outro controle de mesmo nome em uma tabela vinculada ao formulário, poderá causar erros.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 7/8/2011, 05:56

    muito obrigado, está a funcionar, e excelentes conselhos, vou ter em conta daqui para a frente amigo Smile
    por acaso sabe onde posso encontrar algum exemplo de um formulário que faça o contrário...eliminar um registo de uma tabela?
    ou tenho obrigatoriamente de utilizar uma consulta de eliminar?
    avatar
    Convidado
    Convidado


    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Convidado 7/8/2011, 10:17


    Dim db As Database
    Dim rs As Recordset
    Dim Resposta
    Dim StrSQL As String

    Resposta = MsgBox("Confirma a exclusão do registo?", vbYesNo + vbCritical + vbDefaultButton1, "Confirmação")
    If Resposta = vbYes Then
    Set db = CurrentDb
    StrSQL = "SELECT * FROM Artista WHERE CampoChavePrimariaNaTabela = " & Me!SeuCampoTextoNoFormOndeFicaChavePrimaria & ";"

    Set rs = db.OpenRecordset(StrSQL)
    rs.Edit
    rs.Delete
    Else
    Exit Sub

    rs.Close
    db.Close

    Podes tentar assim Amigão..
    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 7/8/2011, 15:42

    é isso aí Smile
    muito obrigado

    para editar um registo da tabela é quase a mesma coisa, não é?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  criquio 7/8/2011, 15:50

    Para editar, basta retirar a linha rs.Delete.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  criquio 7/8/2011, 15:55

    Outra opção mais simplificada para resumir tudo à uma única linha:

    PARA EDITAR
    CurrentDb.Execute "UPADATE NomeDaTabela SET Campo1DaTabela='" & Me.Campo1DoForm & "', Campo2DaTabela='" & Me.Campo2DoForm & "', Campo3DaTabela='" & Me.Campo3DoForm & "' WHERE Código='" & Me.Código & "'"

    PARA DELETAR
    CurrentDb.Execute "DELETE FROM NomeDaTabela WHERE Código='" & Me.Código & "'"

    PARA INSERIR
    CurrentDb.Execute "INSERT INTO NomeDaTabela(Campo1, Campo2, Campo3) Values('" & Me.Campo1 & "', '" & Me.Campo2 & "','" & Me.Campo3 & "')"


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty [Resolvido] Adicionar, Apagar e Editar registos numa tabela

    Mensagem  Ruiidias 7/8/2011, 18:19

    Excelente, muito obrigado Smile
    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 7/8/2011, 19:26

    o que estou a fazer mal?...o debug dá erro na linha do Update
    Código:
    Private Sub bt_editar_Click()


    Dim db As Database
    Dim rs As Recordset
    Dim Resposta
    Dim StrSQL As String

    Resposta = MsgBox("Confirma alteração do registo?", vbYesNo + vbCritical + vbDefaultButton1, "Confirmação")
    If Resposta = vbYes Then
    Set db = CurrentDb
    db.Execute "UPADATE artista SET nome='" & Me.txt_nome & "' & WHERE artista_id='" & Me.txt_codigo & "'"
    Set rs = db.OpenRecordset(StrSQL)
    rs.Edit
    Else
    Exit Sub
    End If
    rs.Close
    db.Close


    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  criquio 7/8/2011, 19:39

    Amigão, lembra que no exemplo do CurrentDb eu falei que era para substituir todo o código por uma única linha?

    Private Sub bt_editar_Click()

    Dim Resposta As String

    Resposta = MsgBox("Confirma alteração do registo?", vbYesNo + vbCritical + vbDefaultButton1, "Confirmação")

    If Resposta = vbYes Then

    CurrentDb.Execute "UPADATE artista SET nome='" & Me.txt_nome & "' & WHERE artista_id='" & Me.txt_codigo & "'"

    Else
    Exit Sub
    End If

    End Sub


    Assim deve resolver.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 7/8/2011, 19:57

    amigo tem razão... foi distraído
    mas devo estar a cometer algum erro...

    dl.dropbox.com/u/19501176/base_musica2.accdb
    avatar
    Convidado
    Convidado


    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Convidado 7/8/2011, 22:14

    Fez as correções do amigo criquio?

    Depois de feitas que erro apareceu?
    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 8/8/2011, 02:01

    dá este erro...
    [Resolvido]Adicionar registo em tabela...verificação de existência Capturar6

    e o debug aponta para esta linha...

    Código:
    CurrentDb.Execute "UPDATE artista SET nome='" & Me.txt_nome & "' & WHERE artista_id='" & Me.txt_codigo & "'"
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  criquio 8/8/2011, 02:25

    Tente assim:

    CurrentDb.Execute "UPDATE artista SET nome='" & Me.txt_nome & "' & WHERE artista_id=" & Me.txt_codigo & ""


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Ruiidias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 26
    Registrado : 31/07/2011

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Ruiidias 8/8/2011, 02:41

    Obrigado a todos, resolvi assim:

    Código:
    CurrentDb.Execute "UPDATE artista SET nome='" & Me.txt_nome & "',artista_id='" & Me.txt_codigo & "' WHERE artista_id=" & Me.txt_codigo & ""
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  criquio 8/8/2011, 03:32

    Grato pelo retorno. Só faltou o resolvido. Dessa vez eu o coloco.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Adicionar registo em tabela...verificação de existência Empty Re: [Resolvido]Adicionar registo em tabela...verificação de existência

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 18/10/2024, 08:32