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]Expresão contando valores no Diretamente no Back End

    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 15/6/2011, 06:07

    Nesta Expressão:

    =SeImed(DContar("*";"]Detento]";"[ID]<>" & Nz([ID];0) & " And [Detento] = '" & Substituir(Nz([Detento]);"'";"''") & "'")>0;"Possível Duplicata";""

    é Possível a adaptação pra ler a tabela no Back End??
    Ou um código utilizando o Dcount... para isso??

    Grato
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 15/6/2011, 09:10

    Oh pá!
    Resolvemos-lhe um problema, traz-nos mais dois?

    Adapte o código da função que lhe criei para incrementar o ID
    Servir-lhe-á para aprender a pescar.
    Cumprimentos,
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 15/6/2011, 13:37

    hehehe so me ajuda a encontrar esse post... sao tantos... hehe ja estou a ficar louco com eles.. hehe

    Grato!
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 27/6/2011, 18:35

    Se puderem me ajudar com este.. Fico Grato
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 27/6/2011, 19:52

    Hary,

    Explique melhor. Parece-me semelhante ao que lhe ajudei anteriormente.
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 27/6/2011, 20:33

    Amigão.. seguinte.. este codigo contava registros duplicados quando era tabelas vinculadas...
    como desvinculei todos os meus forms, ele não funciona mais...

    Este codigo ficava em uma caixa texto..

    Então preciso de algo que me identifique na tabela, registros duplicados, porem um que funcione via SQL para ler diretamente no Back End, pois não tenho mais tabelas nem consultas no Front End..

    Espero que tenha entendido..

    Saudações
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 27/6/2011, 21:52

    Esse = deixa-me dúvidas onde e como utiliza. Prefiro sempre o VBA
    Utilize esta função e adeque o caminho da bd
    Function ContaDuplicados(ID As Long, Detento As String) As Integer
    'criada por Alexandre Neves
    'em 2011-06-27
    'para Harysohn
    'do fórum MaximoAccess
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT Count(Detento) FROM Detentos IN 'Caminho bd' GROUP BY Detento,ID HAVING Count(Detento)>1 and ID='" & ID & "';")
    ContaDuplicados Rst.RecordCount
    Set Rst = Nothing
    End Function
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 27/6/2011, 22:30

    Será assim:

    Function ContaDuplicados(ID As Long, Detento As String) As Integer
    'criada por Alexandre Neves
    'em 2011-06-27
    'para Harysohn
    'do fórum MaximoAccess
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT Count(Detento) FROM Detentos IN 'Caminho bd' GROUP BY Detento,ID HAVING Count(Detento)>1 and ID='" & ID & "';")
    If Rst.RecordCount = 0 Then ContaDuplicados = 0 Else ContaDuplicados = Rst(0)
    Set Rst = Nothing
    End Function
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 27/6/2011, 22:51

    correto.. mas onde aplico a função?
    em uma cixa texto? no form?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 27/6/2011, 23:23

    Não sei onde precisa.
    Deve utilizar onde utilizava a expressão que apresentou
    A função devolve a quantidade de registos duplicados, tendo em conta o ID e o Detento.
    Se pretender que a função devolva um resultado booleano (Sim/Não) também é possível e fácil adaptar
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 28/6/2011, 00:03

    sao dois campos..
    Nome
    Sobrenome

    queria utilizar os dois me devolvendo o nome do detento duplicado...
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 28/6/2011, 00:06

    O form é desvinculado..

    Mas carrego os dados na Combo.. o código da combo:



    '******************************************************************
    'FUNÇÕES DE CAREGAMENTO DAS COMBO REDE
    '******************************************************************

    'Carrega as ComBox's usadas na Rede
    Private Sub CarregaCombo()
    Parametros_de_Inicializacao "SysPen.par"
    Dim StrCboDetento, StrCboAla, StrCboCela As String
    Dim NomeBD As String
    Dim StrPath As String
    Dim dbBanco As Database
    Dim VarReg As String
    Dim VarUnidade As String

    VarReg = RegimeAtual
    VarUnidade = UnidadeOrigem


    NomeBD = "Syspen_be.accdb"


    'String com path para conexão com a base de dados.
    StrPath = DirBancoDados & NomeBD ' Conecta ao banco de dados comum
    Set dbBanco = OpenDatabase(StrPath)

    'ComBox CboDetento
    StrCboDetento = "SELECT Detentos.ID, Detentos.[Nome] & Space (1) & [Sobrenome] FROM Detentos IN '" & StrPath & "'" _
    & "WHERE UnidadeRequisitante='" & VarUnidade & "' and RegimeAtual='" & VarReg & "'" _
    & "Order By Nome, Sobrenome ASC;"

    Me.CboDetento.RowSource = StrCboDetento
    Me![CboDetento].ColumnCount = 2
    Me![CboDetento].ColumnWidths = "0cm; 10cm"


    'Encerra a conexão
    dbBanco.Close
    Set dbBanco = Nothing

    End Sub

    '***************
    Eu uso um codigo que ao selecionar a linha, popula os campos do form, me permitindo assim navegar nos registros
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 28/6/2011, 22:22

    Continuo sem saber onde quer aplicar a função.
    Tem a combo com o nome+espaço+sobrenome do detento
    Ao seleccionar uma linha da combo, preenche os controlos do form.
    E depois? Tem algum controlo para assumir a quantidade de registos já existentes no backend?

    Uma observação: abre o dbBanco e depois fecha-o. Não o vejo a utilizar o objecto.
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 29/6/2011, 13:42

    Seria assim... Escolho o nome na combo.. que por sua vez remete a um código que popula os campos...

    Quero que ao selecionar o nome, se houver duplicidade me mostre em uma caixa texto desacoplada
    o texto: Nome duplicado...e mostre o numero do registro duplicado..


    espero que tenha entdendido..

    Saudações
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 29/6/2011, 20:17

    Hary,

    Começou por apresentar código que utilizava o ID, agora refere nome. Pense bem porque, neste caso, tem o nome+espaço+sobrenome na caixa de texto.
    Como identificar o nome? se for José Maria Santos, o nome é José ou José Maria?
    Caso existam nomes duplicados (existirão muitos José) como referir ao detento concrecto?
    Sugestão: crie na combo uma coluna do ID e aí utilize a função que lhe passei para trabalhar. Seria do género: If Contaduplicados (combo(colunaid),combo(colunadetento))>0 then txtDuplicados=Contaduplicados (combo(colunaid),combo(colunadetento))
    Vá praticando
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 29/6/2011, 20:37

    Caro alexandre...
    o sistema funciona assim...

    Existe o Detento cadastrado... mas se o mesmo esta em liberdade sai da consulta da Unidade... ou seja
    So entra nos forms e relatorios da unidade aquele cujo regime é fechado...

    Ocorre que muitas vezes se vem um novo preso, as vezes o usuario esquece-se de pesquisar o nome no form de ex-detentos, para que não o lance duas vezes...

    E ai o mesmo fica duplicado

    Duas ID's com o mesmo nome...
    Criei maneiras de tentar barrar isso, colocando o Form que verifica nomes ja registrados antes de abrir o form de cadastro.. mas mesmo assim.. voce sabe como é o usuário não? sempre faz m....

    Então:

    Quando se usa nome compostos...
    Sempre o nome composto é cadastrado como NOME

    Nome: José Maria
    Sobrenome: da Silva


    PReciso que ao usuario cadastrar o nome e sobrenome a função cheque via Nome & Espaco (a) & sobrenome para detectar se os mesmo ja existem..


    Espero ter sido claro..

    Grato
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 29/6/2011, 20:40

    Esta funcção contava em uma consulta.. e nma cosulta havia o Campo não acoplado

    Detento: Nome & Spaco(1) & sobrenome...

    =SeImed(DContar("*";"]Detento]";"[ID]<>" & Nz([ID];0) & " And [Detento] = '" & Substituir(Nz([Detento]);"'";"''") & "'")>0;"Possível Duplicata";""

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 29/6/2011, 22:18

    Então o ID é inútil, basta Nome+Espaço+Sobrenome

    utilize
    Function ContaDuplicados(NomeEspacoSobrenome As String) As Integer
    'criada por Alexandre Neves
    'em 2011-06-279
    'para Harysohn
    'do fórum MaximoAccess
    Dim Rst As DAO.Recordset
    Set Rst = CurrentDb.OpenRecordset("SELECT Count(Detento) FROM Detentos IN 'Caminho bd' GROUP BY Detento HAVING Count(Detento)>1 and Nome&' '&Sobrenome='" & NomeEspacoSobrenome & "';")
    If Rst.RecordCount = 0 Then ContaDuplicados = 0 Else ContaDuplicados = Rst(0)
    Set Rst = Nothing
    End Function

    Para este caso, será
    If Contaduplicados (combo(ColunaNome) &" " & combo(colunaSobrenome))>0 then txtDuplicados=Contaduplicados (combo(colunaid),combo(colunadetento))
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 29/6/2011, 22:43

    Mas no caso eu nao uso mais a consulta que tem o campo não acoplado Detento
    Count(Detento.... então como conto isso?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Alexandre Neves 30/6/2011, 00:27

    Conte depois de actualizar a combo
    avatar
    Convidado
    Convidado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Convidado 5/7/2011, 15:17

    Obrigado Alexandra pela sua ajuda.. SOu seu fã, pela humildade que tens.. sua ajuda é sempre bem vinda e sua educação exemplar.... não poderei te retornar o resultado desta dúvida, estou a dando como resolvida, pois me retiro do fórum hoje..

    Muito obrigado pela sempre paciência que teves comigo.. me recordo de uma das primeiras dúvidas que foi voce que me ajudou a solucionar e o que me fez permanecer aqui até no momento tenha cereteza que não foi apenas o conteúdo do fórum que é ótimo e sim a sua atitude altruista de doar o seu tempo e talento em prol de pessoas que não conhece... Continue assim cara.. Voce merece todo o sucesso do mundo!!


    Ate qualquer dia

    Conteúdo patrocinado


    [Resolvido]Expresão contando valores no Diretamente no Back End Empty Re: [Resolvido]Expresão contando valores no Diretamente no Back End

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 12:40