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]Não permitir duplicação de registos

    avatar
    futrecom
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 60
    Registrado : 12/09/2011

    [Resolvido]Não permitir duplicação de registos Empty Não permitir duplicação de registos

    Mensagem  futrecom 30/8/2012, 19:51

    Access 2010
    Boa tarde,
    Tenho um form com uma listbox multiSelect.(Form1)
    Nesse form existe um botão que adiciona os items selecionados da listbox numa tabela.(Tabela1)
    Gostava de saber como evitar duplicar registos na Tabela1, no caso de me esquecer que já tinha adicionado os referidos registos.
    Segue exemplo.
    Obrigado

    https://www.dropbox.com/s/gpymv1yezvnqdt9/multiSelect.rar
    avatar
    Convidado
    Convidado


    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Convidado 30/8/2012, 20:17

    Boas Future... Se possível disponibilize em 2007 ou 2003, poucos usuarios possuem o 2010.

    Mas para isto podes utilizar o Dlookup para pesquizar em sua tabela, em havendo emite menssagem e cancela.


    Cumprimentos.
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Leandro 30/8/2012, 20:24

    Na estrutura da Tabela1, veja a propriedade Indexado, e marque como:
    Sim (Duplicação não autorizada) para esses campos que você quer. Wink

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Leandro 30/8/2012, 20:25

    Opa! Shocked Postei um pouco depois, foi mal.

    avatar
    futrecom
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 60
    Registrado : 12/09/2011

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  futrecom 30/8/2012, 20:26

    2003
    https://www.dropbox.com/s/i4u9pj4y9yqmwe2/multiSelect_2003.rar?m
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Leandro 30/8/2012, 20:36

    Veja aí:


    avatar
    futrecom
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 60
    Registrado : 12/09/2011

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  futrecom 30/8/2012, 21:34

    Peço desculpa mas o exemplo não estava correcto.
    Falta-lhe um campo na tabela1.
    Ou seja, o campo [CodId] e [Nome] podem ser repetidos desde que estejam em reuniões diferentes.
    ex:
    O "Rui" e o "Jose" podem estar em várias reuniões mas não quero que estejam 2 vezes na mesma.

    https://www.dropbox.com/s/4cmf2p8002kphsg/multiSelect_2003_1.rar?m
    avatar
    Convidado
    Convidado


    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Convidado 30/8/2012, 22:18

    Sem problemas amigo Leandro... Prossiga.

    Abraços.
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Leandro 30/8/2012, 22:41

    Você quer dizer que não podem se repetir na mesma sequência?

    Ex,
    jose rui manoel
    jose rui manoel

    É isso?

    avatar
    futrecom
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 60
    Registrado : 12/09/2011

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  futrecom 30/8/2012, 23:01

    Não, já reparaste no último exemplo que coloquei?
    Ao longo do ano tenho várias reuniões, 1 ,2 , 3 ...etc.
    Na reunião 1 só foi por ex. o Jose e o Rui, na 2 o Rui, na 3 o Jose, O Rui e o Manuel.
    O que eu quero evitar é a duplicação dos nomes na mesma reunião.
    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Convidado 31/8/2012, 15:21


    Private Sub Comando2_Click()
    On Error GoTo ErrorHandler

    Dim StrExiste As String

    Set ctl = Me.Lista0
    For Each varItem In ctl.ItemsSelected

    StrExiste = DCount("Nome", "Tabela1", "CodId =" & ctl.Column(0, varItem) & " And Nome = '" & ctl.Column(1, varItem) & "'")

    If StrExiste = 0 Then

    CurrentDb.Execute ("INSERT INTO Tabela1 (CodId, Nome) Values(""" & ctl.ItemData(varItem) & """," _
    & """" & ctl.Column(1, varItem) & """)")
    End If

    Next varItem

    ExitHandler:
    Set rs = Nothing
    Set db = Nothing
    Exit Sub

    ErrorHandler:
    Select Case Err
    Case Else
    MsgBox Err.Description
    DoCmd.Hourglass False
    Resume ExitHandler
    End Select

    End Sub


    Cumprimentos.
    avatar
    futrecom
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 60
    Registrado : 12/09/2011

    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  futrecom 31/8/2012, 18:05

    Obrigado a todos resolvido da seguinte forma:



    Private Sub Comando2_Click()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim ctl As Control
    Dim varItem As Variant


    On Error GoTo ErrorHandler

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Tabela1", dbOpenDynaset, dbAppendOnly)


    If Me.Lista0.ItemsSelected.Count = 0 Then
    MsgBox "Tem de selecionar pelo menos um jogador"
    Exit Sub
    End If


    Set ctl = Me.Lista0
    For Each varItem In ctl.ItemsSelected
    If IsNull(DLookup("Id", "Tabela1", "CodId =" & ctl.Column(0, varItem) & " And Reuniao_N = " & Me.NR & "")) Then

    rs.AddNew
    rs!CodId = ctl.ItemData(varItem)
    rs![Nome] = ctl.Column(1, varItem)
    rs!Reuniao_N = Me.NR
    rs.Update

    Else
    Me.Undo
    End If
    Next varItem
    ExitHandler:
    Set rs = Nothing
    Set db = Nothing
    Exit Sub

    ErrorHandler:
    Select Case Err
    Case Else
    MsgBox Err.Description
    DoCmd.Hourglass False
    Resume ExitHandler
    End Select

    End Sub

    Obrigado mais uma vez a todos que tentaram ajudar e ao forum
    avatar
    Convidado
    Convidado


    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Convidado 31/8/2012, 18:36

    Boas Future... Eu particularmente para este caso não creio ser necessário a utilização de um procedimento Recordset, pois você carrega o mesmo depois Adiciona, atualiza...

    Para este procedimento a instrução Insert Into é mais prática e lhe diminui execução de tempo em confecção e execução dos códigos no procedimento.

    Há várias maneiras de se chegar a um resultado, no entanto deves aplicar a mais apropriada. Na minha humilde opinião creio que neste caso o Insert Into seria mais apropriado.


    O Fórum Agradece o Retorno.

    Conteúdo patrocinado


    [Resolvido]Não permitir duplicação de registos Empty Re: [Resolvido]Não permitir duplicação de registos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 08:53