DUPLICACAO NAO AUTORIZADA

GUTO 21/03/2005 16:27:53
#74091
Oi pessoal to tentano ta ligado , meu registro ten dois campos Codigo Proprietario e Codigo do Imovel , o Codigo do Proprietario Naun pode se repetir , e fiz um tratamento de erro que quando o usuario por deslexo colocar o mesmo codigo do Proprietario mais de uma vez aparecesse uma mensagem box , mas ai , o tipo de tratameto de erro , parece num dar , naun gostaria que o codigo do proprietario se repetisse , ja que naun ÂÂÂ'é autonumeracao ,
porque tipo o codigo do proprietaroi seria o nome dele
eo codigo do imovel seria a quantidade de imoveis que ele tem , entaun os codigos do proprietario naun poderia se repetir, entenderam obrigado
falow


LCSD 21/03/2005 16:39:29
#74095
Post o código que VC faz isso, assim fica mais fácil estar te ajudando...
GUTO 21/03/2005 16:44:19
#74097
eu tinha copiado o erro q dava quando iso acontecia de duplicar mas esse jeito naun foi satisfatorio

'Inclui o registro
On Error GoTo erro
rsApartamentos.Update
CmdExcluir.Enabled = True
cmdAltCli.Enabled = True
CmdPesquisar.Enabled = True
erro:
'If err.Number = -2147467259 Then
'FrmMsgBoxIncluir.Show vbModal
'MsgBox (" Verifique se Este Codigo de Proprietário Consta No Formulario Proprietários"), vbInformation
'End If
USUARIO.EXCLUIDOS 21/03/2005 16:48:28
#74101
Guto, o NEGÓ“CIO é o seguinte, se o NÃÅ¡MERO não puder ser repetido, e o mesmo vai ser utilizado em PESQUISAS, e como VOCÃÅ  disse não é autonumeração, você pode implementar um pesquisa na base de dados antes de gravar o arquivo!!!
Ex:

Private sub Gravar_Click()
Dim criterio as Integer
criterio = Text.Codigo
sql = "select * from imoveis where CODIGO=" & criterio
adodc1.recordsource = sql
adodc1.refresh

if adodc1.Recordset.EOF And Adodc1.Recordset.Bof Then
Adodc1.Addnew
Adodc1.Recordset![CODIGO] = txtCodigo
'......
ELSE
Msgbox "Erro: este CÓ“DIGO já existe!"
End if

Adodc1.Recordset= "select * from imoveis"
Adodc1.Refresh

End Sub

Você pode fazer a mesma coisa com o METODO find, se não quiser ter muito acesso ao BANCO DE DADOS.... foi só um exemplo.. pra vc ADAPTAR..
GUTO 21/03/2005 16:51:31
#74103
eu colocaria isso no botao incluir?
USUARIO.EXCLUIDOS 21/03/2005 16:54:00
#74106
Sim, mas como falei... dependendo... da situação..você poderia usar o FIND.... pois do jeito que coloquei acima... accessa muito o bd.... mas foi só uma Logica.. PRA VC...
Sacou?
USUARIO.EXCLUIDOS 21/03/2005 16:59:57
#74107
Resposta escolhida
Guto, poderia explicar melhor o funcionamento da coisa?

é que, parece, você estar a gravar numa determinada tabela o nome de uma determinada pessoa, o que é perfeitamente aconselhável, pois gravar o nome ocupa muito mais espaço que você gravar um código, que seria, com certeza, muito mais pequeno.

Se fosse eu, criaria uma tabela com os nomes (e outros dados que você achasse de interesse) e um código numérico para cada cliente(esse código seria o que ficaria gravado em todas as tabelas onde o cliente interviesse.

Para que o mesmo cliente se não devesse repetir, se não tivesse qualquer outro dado de referência, colocaria que o nome não se pudesse repetir, mas atenção pois os nomes para chave são sempre muito perigosos pois basta que o mesmo nome seja escrito de forma diferente para que um só cliente possa aparecer duas ou mais vezes.
O número fiscal ou algo do género é o ideal para que a mesma pessoa não possa aparecer como cliente mais do que uma vez.

Depois construia uma lista de valores para o utilizador escolher, onde apenas interviriam clientes já cadastrados, onde embora mostrasse o nome, o que ficaria gravado seria o respectivo código.

Para que o nome figurasse acoplado ao código sempre que necessário apenas seria necessário ir buscá-lo à  tabela de clientes.

Não sei se me fiz entender, mas o que pretendia, era não só ajudar na resolução do problema mas, ao mesmo tempo fazer com que a sua informação ficasse organizada de uma forma mais correcta.

De qualquer forma os elementos que forneceu são ainda insuficientes para dar qualquer ajuda.
GUTO 21/03/2005 17:12:36
#74113
o negocio é o seguinte o Programa é cadastro de Imoveis , oq significa no sitema de trabalho de uma imobiliaria que os interessados em imoveis naun podem ter acesso aos registros dos proprietarios dos imoveis que else se interressem , pq veja bem imagina q eu quero um aaprtamento e no sistema de cadastro de imoveis aaprece o nome desse proprietario desse apartamento eos dados deles como telefone etc , pra q q eu vou tratar com o carretaor e ter q dar comissao pra ele , eu vou tratar diretamente com o dono , entaun a pessoa interessada em COMPRAR naun pode ver os dados do proprietario que esta VENDENDO akilo que esta no Form por isso criei no Form Apartamento o campo chamado Codigo do proprietario , que seria numerico e seria o modo de identifica-lo no Form Proprietarios , mas convenhamos que esse proprietario pode ter mais de um Apartamento pra VENDER eu teria que cadastrar os dois , pq eles tem caracteristoicas diferentes , o proprietario é o mesmo mas o codigo do imovel muda , nesse caso o codigo do proprietario continuaria 1 , mas o codigo do imovel seria ja 2, naun gostaria q por deslexo , oq pode acontecer o usuario cadastrar o codigo do proiprietario 1 e codigo do imovel 2 , mais de uma vez , entaun naun gostaira que pudesse duplicar e avisasse o usuario q ele esta fazendo "cagada" vcamos dizer assim, saco?
USUARIO.EXCLUIDOS 21/03/2005 19:15:03
#74160
Bom, parece que agora já percebi o funcionamento da coisa.
O que você precisa é algo do género, é so mesmo adaptar:

Public Function ConfirmarRegisto(ByVal strIdentificativo As String, ByVal strCodigo As Long) As Boolean


Set rstMovimentos = New ADODB.Recordset

strSql = "SELECT id_movimento, Codigo FROM tMovimentos"
strSql = strSql & " WHERE tMOVIMENTOS.id_movimento ='" & strIdentificativo & "'"
strSql = strSql & " and tMOVIMENTOS.Codigo = " & strCodigo & ""
rstMovimentos.CursorLocation = adUseClient
rstMovimentos.Open strSql, dbDados, adOpenKeyset, adLockReadOnly, adCmdText

If Not rstMovimentos.EOF Then
ConfirmarRegisto = True
Else
ConfirmarRegisto = False
End If

rstMovimentos.Close

Set rstMovimentos = Nothing

End Function
GUTO 22/03/2005 10:42:15
#74230
Ok eu acabei de mudar pra isso e naun deu certo, valews
Public Function ConfirmarRegisto(ByVal strIdentificativo As String, ByVal strCodigo As Long) As Boolean
Set rsarea = New ADODB.Recordset
strSQL = "SELECT Codigo, CodigoImo FROM Tbl_Areas"
strSQL = strSQL & " WHERE Tbl_Areas.CodigoImo ='" & strIdentificativo & "'"
strSQL = strSQL & " and Tbl_Areas.Codigo = " & strCodigo & ""
rsarea.CursorLocation = adUseClient
rsarea.Open strSQL, cnBd, adOpenKeyset, adLockReadOnly, adCmdText
If Not rsarea.EOF Then
ConfirmarRegisto = True
Else
ConfirmarRegisto = False
End If
rsarea.Close
Set rsarea = Nothing
End Function
GUTO 23/03/2005 14:30:48
#74511
alguem
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas