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]Indices de campo Null

    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Indices de campo Null

    Mensagem  Pablo Weber 21/12/2012, 18:54

    Olá pessoa, boa tarde a todos. Esta acontecendo um erro em minha aplicação "Índice ou chave primária não pode conter um valor Null". Essa mensagem aparece quando ao inserir um registro em qualquer campo do meu formPrincipal e tabular para o primeiro campos do meu subForm. O engraçado é que quando os campos estão vazios não aparece nada.Tenho duas tabelas que estão relacionadas em um-para-muitos, onde na primeira que contem os dados basicos dos individuos o campo IdIndividuos é Chave Primária do tipo número, tamanho duplo, não requerido e Indexado (Duplicação não autorizada), e na segunda tabela onde constam dados complementares (vários registros para cada um individuos da primeira tabela), o IdMandados é do tipo número, tamanho duplo, não requerido e indexado (duplicação autorizada). Acredito que seja pelo motivo de um dos campos não ser numeração automática. Só que agora não há possibilidade de mudar, pois teria de inserir um novo campo com essa numeração automatica, o que tiraria de ordem todos os meus registros, causaria um caos no meu sistema. Será que tem alguma solução para isso. Achei que havia finalizado minha aplicação, mas acho que ainda tenho um grande problema pela frente. Abraços
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 21/12/2012, 22:31

    Boas Pablo, não apenas as tabelas tem que estarem relacionadas, mas o form e subform tambem devem ser vinculados.

    Abra o form em modo desgin, Aba dados,

    Vincular Campos Mestres e Vincular Campos filho... Nestes campos devem estar o campo codigo utilizado no relacionamento.

    Assim quando clicar no subform ele adicionará no campo relacionado o código da tabela principal


    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 22/12/2012, 14:26

    Saudações amigo Piloto, esse relacionamento já esta feito, entre os form "Pai e Filho", por isso não entendo o erro. Pois recentemente lancei vários registros no subform tranquilamente. Eu selecionava o individuo na comboNome e depois atualizava os dados no subform tranquilamente. Mas agora quando ele abre com os campos vazio para inserir um novo registro, eu até consigo tabular legal entre todos os campos, mas é só inserir um dado qualquer independente de que campo seja, ele da essa mensagem.
    Abraços.
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 22/12/2012, 17:22

    Envie a parte do BD para que possamos ver...

    Ja me correu algo parecido ma o erro era no form.. Criei um form novo e coloquei os objetos e funcionou.

    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 23/12/2012, 01:58

    Piloto eu andei dando uma comparada com um Bkp do meu sistema, e percebi que o tipo de dados da segunda tabela em vez de estar Inteiro Longo, está Duplo. Acontece que não alterei esses dados, o que pode ter acontecido. Reverter esse erro será que dá ainda.Abraços.
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 23/12/2012, 12:10

    Bom dia Pablo, este erro aparenteme é erro nos campos relacionados, pois quando são relacionados... asim que digita em qualquer campo do subform, ele preenche automaticamente o campo o relacionamento com o código do form principal. Creio que a questão de suplo ou não não tenha haver com este erro.

    Crie uma copia do bd e faça as alterações e observe se corrigirá.

    Tipo de campo duplo, são campos que aceitam numeros decimais e valores,
    Inteiro e einteiro logo, a diferença e a capacidade de armazenamento.

    Podes alterar se o texto contido não ultrapassar o limite para numeros inteiros nçao ocorrerá problemas, na mudança de inteiro para duplo so ocorrerá perda do texto digitado se o mesmo nçao estiver nos padróes de numero inteiro.


    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 28/12/2012, 01:33

    Valeu Piloto, mas cara não to conseguindo realizar essa mudança, pois para que a chave primária da minha tabela IdIndivíduos esteja com numeração automática, e a segunda tabela IdMandados com o campo numero, acredito que devo ter que digitar todos os 600 registros nela existentes novamente, pois já fiz um teste em inserir um novo campo com numeração automática, mas acontece que a antiga numeração sequencial não se relacionará com a segunda tabela, tornando assim um caos. E agora o que fazer?
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 28/12/2012, 01:45

    Ixi.. isso é um problema...Mande para mim para que eu possa ver isto pra voce.

    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 28/12/2012, 11:38

    Ok. Vou dar uma olhada e compacar para você. Só vai demorar um pouquinho, pois em minhas tabelas contêm dados pessoais de indivíduos, que não podem ser divulgados, entendeu. Mas vou ver o que consigo fazer. Valeu Piloto.
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 28/12/2012, 12:28

    Caso queira envie-me no e-mail, sabes que meu principal sistema é o Syspen e é da mesma área...

    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 28/12/2012, 14:03

    Postei ai Piloto, caso não consiga abrir, pelo motivo do Zip ser uma versão mais aintiga, me de um retorno que posto no seu e-mail. Ok. Obrigado pela atenção. Abraços
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 29/12/2012, 13:39

    Realmente Pablo, quando tem uma chave primária como auto-numeração, ao criar um registro é gerado um numero automaticamente.
    Como sua chave primária é do tipo número este campo fica em branco. Chaves primárias não pode conter um valor Null ou em branco.

    Como voce disse, nao poderia mudar este campo para auto-numeração pois geraria desordem em seus registros, pois bem

    1 - Crie um módulo e o nomeie de mdlNumeracao, neste cole o código:


    Function NumeroLivreVago(CampoID As String, NomeTabela As String, EnderecoBD As String) As Long
    'criada por Alexandre Neves
    'em 2011-06-15
    'para Harysohn
    'do fórum MaximoAccess
    Dim rst As DAO.Recordset, I As Integer
    Set rst = CurrentDb.OpenRecordset("SELECT " & CampoID & " FROM " & NomeTabela & " WHERE Not IsNull(" & CampoID & ") ORDER BY " & CampoID & ";")

    If rst.RecordCount = 0 Or IsNull(rst(0)) Then
    NumeroLivreVago = 1
    Else
    I = 1
    Do
    If rst.EOF Then
    NumeroLivreVago = I
    Exit Do
    ElseIf IsNull(rst(0)) Or rst(0) = "" Or rst(0) <> I Then
    NumeroLivreVago = I
    Exit Do
    End If
    I = I + 1
    rst.MoveNext
    Loop
    End If
    Set rst = Nothing
    Exit Function
    MostraErro:
    MsgBox err.Number & vbCr & err.Description
    End Function


    e no seu form:

    Coloque um botão: Novo Registro, neste o código

    DoCmd.GoToRecord , , acNewRec
    Me.IdIndividuos = NumeroLivreVago("IdIndividuos", "tblCadastroIndividuos")

    Esta função numerará seus registros, e aproveitará tambem numeros vagos.

    Coloque botões de navegação e desabilite a navegação do form.

    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 30/12/2012, 04:28

    OK, no seu código onde
    Function NumeroLivreVago(CampoID As String, NomeTabela As String, EnderecoBD As String) As
    Dim rst As DAO.Recordset, I As Integer
    Set rst = CurrentDb.OpenRecordset("SELECT " & CampoID & " FROM " & NomeTabela & " WHERE Not IsNull(" & CampoID & ") ORDER BY " & CampoID & ";")

    Onde: CampoID, NomeTabela e EnderecoBD, tenho que modificar para IdIndividuos, tblCadastroIndividuos e o EnderecoBD o que é?

    e na parte SQL ("SELECT.....no CampoID & " FROM " & NomeTabela & " WHERE Not IsNull(" & CampoID & ") ORDER BY " & CampoID & ";")

    devo substituir como indicado anteriormente?

    Eu substitui mas ainda não deu, e no botão para adicionar novos registros, no evento click, coloquei o seu código mas gera um erro em tempo de execução no NumeroLivreVago em Me.IdIndividuos = NumeroLivreVago("IdIndividuos", "tblCadastroIndividuos")

    Você consegui abrir o BD e fazer essas alterações e funcionou pleno?
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 30/12/2012, 12:44

    Perdoe-me amigão é que na minha função eu tenho que especificar o enereço do BD pois meus forms são desvinculados.

    A sua função é esta, testado e funcionando:



    Function NumeroLivreVago(CampoID As String, NomeTabela As String) As Long
    'criada por Alexandre Neves
    'em 2011-06-15
    'para Harysohn
    'do fórum MaximoAccess
    Dim rst As DAO.Recordset, I As Integer
    Set rst = CurrentDb.OpenRecordset("SELECT " & CampoID & " FROM " & NomeTabela & " WHERE Not IsNull(" & CampoID & ") ORDER BY " & CampoID & ";")

    If rst.RecordCount = 0 Or IsNull(rst(0)) Then
    NumeroLivreVago = 1
    Else
    I = 1
    Do
    If rst.EOF Then
    NumeroLivreVago = I
    Exit Do
    ElseIf IsNull(rst(0)) Or rst(0) = "" Or rst(0) I Then
    NumeroLivreVago = I
    Exit Do
    End If
    I = I + 1
    rst.MoveNext
    Loop
    End If
    Set rst = Nothing
    Exit Function
    MostraErro:
    MsgBox Err.Number & vbCr & Err.Description
    End Function


    Cumprimentos.
    Pablo Weber
    Pablo Weber
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 195
    Registrado : 22/11/2010

    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Pablo Weber 30/12/2012, 19:43

    Meu amigo Piloto, não sei como vocês conseguem, mas ficou certinho com essa nova função que tu me passaste, cara ficou show de bola. Muito obrigado pela sua atenção e de todos que de um modo geral contribuirão. O meu muito obrigado, e espero puder uma hora dessas compartilhar algum artigo para esse Fórum que ajuda muita gente. Valeu Piloto, grande abraço.
    avatar
    Convidado
    Convidado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Convidado 30/12/2012, 20:00

    Este Código me foi feito pelo Grande Alexandre Neves, ao qual eu atribuo os créditos desta solução.

    O Fórum agradece o Retorno, Feliz Ano Novo!

    Conteúdo patrocinado


    [Resolvido]Indices de campo Null Empty Re: [Resolvido]Indices de campo Null

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 02:39