rogi_cps Posted August 14, 2009 at 06:47 PM Report #283324 Posted August 14, 2009 at 06:47 PM Preciso de ajuda urgente!!!!!! Estou dando cabeçadas neste ponto!!! Explanando.... é o seguinte, tenho um banco de dados em Access 2003 e ele tem duas tabelas, uma chamada Amb e outra Geral. Na tabela amb, tem cadastrado ambulatórios de um hospital e locais de atendimento no mesmo. A tabela geral se refere aos dadsos de faltas dos ambulatórios. O ponto é o seguinte... criei um formulário que une as duas tabelas, sendo que os dados da tabela amb não serão alterados, e sim, usados para criar a tabela Geral (complementar a tabela geral), pois as mesmas tem o mesmo campos. A grande questão que não quero que seja cadastrados registros duplicados, mas não posso setar os cmapos da tabela como registros não duplicados (sim ele podem duplicar no campo, aliás em todos os campos). O que eu chamo de registro duplicado, seria todos os campos a serem inseridos na tabela geral, mas que ele não venham duplicar com todos os dados já existentes. o que na relaidade eu preciso é um metodo que execute um seek, ou find, ou seja o que for para que compare os dados de todos os campos que estou tentando inserir, com todos os campos que já estão cadastrados, e se caso todos os dados sejam duplicados com registros exitentes, avise a duplicidade e não grave. Não estou conseguindo executar tal procedimento. Será que teriam alguma idéia para tal problema??? Agradeço a ajuda!!!
rogi_cps Posted August 19, 2009 at 08:19 PM Author Report #283845 Posted August 19, 2009 at 08:19 PM Caramba..... Acho que estão como eu... sem idéias.... Porém tive uma e gostaria de saber se conseguem me ajudar a terminar de executar, pois estou tendo uma determinada dificuldade... Tenho neste arquivo os campos:Código (autonum), Cod(inteiro), Amb(Texto), Local(Texto), data1(data/hora), Data2(Data/Hora) estou utilizando o Dlookup (Dpesquisa) para tentar chegar a duplicidade, porém estou com a dificuldade. Preciso Pegar o campo Código através do Dpesquisa, só que com a entrada de data, e a resposta tem sido a mesma (Nulo). Estou colando o comando que estou usando, por favor me ajudem!! Bopm aí vai todo o procedimento que estou usando, ressalto que não está terminado devido a este problema.... por favor...ç sugestões.. escrevam Public Sub Duplicidade() 'define os valores para as variáveis de acordo com os campos. Cod.SetFocus VPCod = Cod.Text Localizacao.SetFocus VPLoc = Localizacao.Text DataEntrega.SetFocus VPEntr = DataEntrega.Text DataAbsenteismo.SetFocus VPAbs = DataAbsenteismo.Text 'acha o código de autonumeração, baseado primeiramente na dataentrega VPRet = DLookup("[Código]", "Geral", _ "[DataEntrega] = " & VPEntr) Carregamento: 'define os valores para os campos de acordo com a tabela Amb VPCod2 = DLookup("[cod]", "Geral", _ "[código] = " & VPRet) VPLoc2 = DLookup("[local]", "Geral", _ "[código] = " & VPRet) VPEntr2 = DLookup("[dataentrega]", "Geral", _ "[código] = " & VPRet) VPAbs2 = DLookup("[dataabsenteismo]", "Geral", _ "[código] = " & VPRet) 'verifica se os campos são identicos e caso seja exclui o registro 'não permitindo gravação de duplicidade If VPEntr = VPEntr2 Then If VPAbs = VPAbs2 Then If VPCod = VPCod2 Then If VPLoc = VPLoc2 Then MsgBox "Registro Duplicado!" & vbCr _ & "O Registro será deletado!", vbOKOnly + vbInformation, "Duplicidade" DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.GoToRecord , , acLast Else GoTo SomaCarregamento End If Else GoTo SomaCarregamento End If Else GoTo SomaCarregamento End If Else GoTo SairCarregamento End If SomaCarregamento: VPRet = VPRet + 1 GoTo Carregamento SairCarregamento: End Sub
jpaulino Posted August 19, 2009 at 11:13 PM Report #283880 Posted August 19, 2009 at 11:13 PM E que tal mostrares o ficheiro ?
rogi_cps Posted August 25, 2009 at 05:02 PM Author Report #284497 Posted August 25, 2009 at 05:02 PM Esta pensando.... seria possível usar uma chamada para abrir a tabela e procurar o registro compatível, retornando uma msg, caso venha achar, que o registro já existe e apagar o registro duplicado???? Essa tabela aberta me permitiria uma procura em todos os registros compatíveis.... Seria viável tal possibilidade???
rogi_cps Posted August 26, 2009 at 07:11 PM Author Report #284652 Posted August 26, 2009 at 07:11 PM A abertura de tabela no memso projeto me pareceu ineficaz, sendo que ficaria muito pesado. O que me fez retornar ao plano inicial do comando DPesquisa, porém lendo algums tópicos na internet, vi que seria possível fazer com que a criteria não tivesse apenas um campo, mas vários campos como critério. agora a dificuldade surgiu, sendoq ue tenho o comando abaixo: o campo dataentrega é date o campo dataabsenteismo é date o campo cod é inteiro o campo localização / local é texto. VPRet = DLookup("[Código]", "Geral", "[DataEntrega] = #" & Form![DataEntrega] & "#" And "[DataAbsenteismo] = #" & Form![DataAbsenteismo] & "#" And "[Cod] = Form![Cod]" And "[Local] = '" & Form![Localizacao] & "'") o que estaria de errado no meu código??? Pois o mesmo tem retorno o erro de daods incompatíveis.
rogi_cps Posted September 1, 2009 at 11:55 AM Author Report #285302 Posted September 1, 2009 at 11:55 AM nenhuma sugestão sobre esse último código??? Moderador, poderia dar uma ajudinha??? Agradeço
Cocolin Posted September 1, 2009 at 12:16 PM Report #285306 Posted September 1, 2009 at 12:16 PM E que tal mostrares o ficheiro ? o moderador já tentou ajudá, mais você nem deu bola pra ele! faz o que ele pediu anda.
rogi_cps Posted September 1, 2009 at 07:53 PM Author Report #285353 Posted September 1, 2009 at 07:53 PM o moderador já tentou ajudá, mais você nem deu bola pra ele! faz o que ele pediu anda. Antes de mais nada, fiz mais do que o moderador pediu. Infelizmente eu trabalho em local onde somente tenho acesso a sites .org, portanto, não posso postar. Em conversar PM com o moderardor, ele me pediu para enviar o arquivo para ele, que ele mesmo postaria, mas vejo que isso não aconteceu. resolvi procurar mudar o código, precisando somente da sintaxe correta para o comando que forneci acima, pois o mesmo não está funcionando, retornando tipo de variáveis incompatíveis. O moderador não tem me respondido, ultimamente, creio que devivo ao grande volume de solicitações que ele tem. Tenho pedido ajuda a ele por PM da mesma forma que postei esse código aki. Mas creio que como fórum, todos os membros que tenham conhecimento possam ajudar e não ficar diretamente e somente na mão do moderador. Portanto pergunto a você, gostaria de analizar o meu arquivo?? Te envio por e-mail, porém não posso postar ele aki, e o moderador não o fez para mim, como um favor pessoal, mas posso enviar por mail. Pode ajudar?? Porte aki uma resposta.
jpaulino Posted September 1, 2009 at 08:34 PM Report #285357 Posted September 1, 2009 at 08:34 PM E qual é o critério da procura ? O que deve ser pesquisado e que servirá como critério para identificar se é duplicado ou não.
rogi_cps Posted September 2, 2009 at 02:45 AM Author Report #285378 Posted September 2, 2009 at 02:45 AM Tenho o seguinte quadro: Uma tabela com os campos o campo dataentrega é date o campo dataabsenteismo é date o campo cod é inteiro o campo local é texto. um form com os campos o campo dataentrega é date o campo dataabsenteismo é date o campo cod é inteiro o campo localização texto. o que estou querendo é o seguinte.... preciso achar um registro especifico na tabela com os dados do campo, porém esse formulário não está vinculado a tabela, e a tabela tem todos os campos como duplicação autorizada, o que dificulta ainda mais. Com o Dlookup, ele pode me tornar um resultado de verdadeiro ou falso, o que já serviria para mim, pois achando o registro com os valores requisitados, meu formulário apresentaria uma msgbox, dizendo que o mesmo existe e não pode ser cadastrado novamente. o comando que tentei tem retornado variáveis incompatíveis, e provavelmente está na forma que eu estou escrevenodo o código, porém como já comentei, não tem como buscar ajuda em sites especidficos, pois os mesmo são extensões diferentes de .org. To ´postando abaixo o comando novamente. como vc tem o banco de dados... se colocar no sub duplicidade e chamar ele em qualquer lost focus vai apresentar o mesmo erro. Tabela Geral, formulario CadastroGeral.] VPRet = DLookup("[Código]", "Geral", "[DataEntrega] = #" & Form![DataEntrega] & "#" And "[DataAbsenteismo] = #" & Form![DataAbsenteismo] & "#" And "[Cod] = Form![Cod]" And "[Local] = '" & Form![Localizacao] & "'") provavelmente essa forma esteja arrada. Por favor, teria como verificar a escrita deste código??? Valeu!!
jpaulino Posted September 3, 2009 at 10:38 AM Report #285500 Posted September 3, 2009 at 10:38 AM Olá, Desculpa o atraso na resposta mas tenho tido muito trabalho (e obviamente pouco tempo 😄 ) Mas aqui vai uma correcção ao que já tens feito e que deve funcionar: VPRet = DLookup("[Código]", "Geral", "[DataEntrega] = #" & Form![DataEntrega] & "# And [DataAbsenteismo] = #" & Form![DataAbsenteismo] & "# And [Cod] = " & Form![Cod] & " And [Local] = '" & Form![Localizacao] & "'") If Not IsNull(VPRet) Then MsgBox "Registo duplicado!" End If
rogi_cps Posted September 3, 2009 at 07:58 PM Author Report #285563 Posted September 3, 2009 at 07:58 PM Olá, Desculpa o atraso na resposta mas tenho tido muito trabalho (e obviamente pouco tempo 🙂 ) Mas aqui vai uma correcção ao que já tens feito e que deve funcionar: VPRet = DLookup("[Código]", "Geral", "[DataEntrega] = #" & Form![DataEntrega] & "# And [DataAbsenteismo] = #" & Form![DataAbsenteismo] & "# And [Cod] = " & Form![Cod] & " And [Local] = '" & Form![Localizacao] & "'") If Not IsNull(VPRet) Then MsgBox "Registo duplicado!" End If 🙂 Compreendo que és ocupado, e que está cheio de trabalho para fazer a ainda tens a responsabilidade de moderar o fórum, por isso aguardei sua resposta, sabendo também que teria uma resposta definitiva, e realemnte foi definitiva. O código funcionou perfeitamente 😁 e agradeço imensamente a ajuda prestada. Creio que podes fechar o tópico pois foi executado com extrem sucesso. Realmente me admira sua experiência. :notworthy: 😄 Meus agradecimentos, jpaulino!!!! 🙂 rogi_cps.
jpaulino Posted September 3, 2009 at 09:08 PM Report #285568 Posted September 3, 2009 at 09:08 PM Ainda bem que está resolvido! 😄 Um abraço
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now