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


4 participantes

    [Resolvido]Regra de validação em campo da tabela via código

    avatar
    Yesus
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 12/04/2018

    [Resolvido]Regra de validação em campo da tabela via código Empty [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Yesus 20/2/2021, 18:44

    Boa tarde pessoal, estou tentando criar uma tabela com as definições abaixo, mas me apresenta um erro de sintaxe.
    Código:

    CREATE TABLE tbPessoas (
        Id AUTOINCREMENT PRIMARY KEY,
        Status YESNO,
        Tipo YESNO,
        Identificador CHAR(14),
        Categoria BYTE NOT NULL,
        Nome VARCHAR(80) NOT NULL,
        Apelido VARCHAR(40),
        Genero BYTE NOT NULL,
        IdGrupo LONG NOT NULL,
        CHECK(Categoria BETWEEN 0 AND 5),
        CHECK(Genero BETWEEN 0 AND 5)
        )

    Percebi que não dá para utilizar o CHECK, pois quando retiro as duas últimas linhas de validação dos campos, o código executa normalmente. Teria alguma maneira de inserir uma regra de validação em campo da tabela via código?

    Código:

    ALTER TABLE tbPessoas
        ADD CONSTRAINT chk_Categoria
        CHECK (Categoria BETWEEN 0 AND 2)

    Também tentei o código acima, mas não deu certo. Alguém tem alguma dica???


    Última edição por Yesus em 7/3/2021, 18:42, editado 1 vez(es)
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2680
    Registrado : 23/01/2018

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  crysostomo 23/2/2021, 13:14

    Bom dia , para valida campo 
     
    Código:
    if isnull(seu campo) then
       msgbox" campo obrigatório", information
    else
    end if
    end sub


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    avatar
    Yesus
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 12/04/2018

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Yesus 24/2/2021, 23:55

    Na verdade procuro uma função que seja inserida na criação da tabela. Em SQL tem como usar a função CHECK, mas não sei por que no Access não aceita esse tipo de validação via código. O que deu para fazer foi pelo aplicativo mesmo. Modo de Exibição Desing > Seleciono o campo e com o Construtor de Expressões eu crio a regra de validação. Mas o que queria mesmo era poder fazer a inserção dessa validação via código. Alguém???
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  DamascenoJr. 25/2/2021, 02:56

    Código:
    'código de criação a tabela

    Dim bd As Database
    Dim cp As Field

    Set bd = CurrentDb
    Set cp = bd.TableDefs("Tabela1").Fields("CampoTeste")
    cp.ValidationRule = ">0"
    cp.ValidationText = "Tem que ser maior que 0"
    Set cp = Nothing
    Set bd = Nothing


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    crysostomo gosta desta mensagem

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Avelino Sampaio 25/2/2021, 11:12

    Olá!

    O senhor está utilizando o DAO ou o ADO? Creio que só funcione com o ADO. Ative a referência Microsoft ActiveX Data Objects 6.1 Library.

    Algo Assim:

    Dim conn As ADODB.Connection 
    Set conn = CurrentProject.Connection
    conn.Execute "CREATE TABLE tbPessoas (
    Id AUTOINCREMENT PRIMARY KEY,
    Status YESNO,
    Tipo YESNO,
    Identificador CHAR(14),
    Categoria BYTE NOT NULL,
    Nome VARCHAR(80) NOT NULL,
    Apelido VARCHAR(40),
    Genero BYTE NOT NULL,
    IdGrupo LONG NOT NULL,
    CHECK(Categoria BETWEEN 0 AND 5),
    CHECK(Genero BETWEEN 0 AND 5))
    conn.Close
    Set conn = Nothing


    Aguardamos




    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Yesus
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 12/04/2018

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Yesus 25/2/2021, 17:13

    Deu certo. Por enquanto isso sana o meu problema. Queria colocar essa rotina em um módulo de classe, mas quando faço isso o erro retorna. Teria como contornar isso?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Avelino Sampaio 25/2/2021, 18:00

    Olá!

    Qual das opções oferecidas deu certo ?

    Aguardamos


    Última edição por Avelino Sampaio em 25/2/2021, 21:53, editado 1 vez(es)


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Yesus
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 12/04/2018

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Yesus 25/2/2021, 21:43

    A solução que resolveu foi a usar as referências de dados ADO. Ativando o Microsoft ActiveX Data Objects 6.1 Library. E ao invés de usar o CurrentDb, usar o CurrentProject. O código abaixo fornecido pelo Sr. Avelino me deu uma ajuda e tanto. Sobre inserir em um Módulo Classe deu certo também, estava tentando usar uma Function, mas só deu certo sendo Sub. Muito Obrigado a todos.

    Código:

    Dim conn As ADODB.Connection
    Set conn = CurrentProject.Connection
    conn.Execute "CREATE TABLE tbPessoas (
        Id AUTOINCREMENT PRIMARY KEY,
        Status YESNO,
        Tipo YESNO,
        Identificador CHAR(14),
        Categoria BYTE NOT NULL,
        Nome VARCHAR(80) NOT NULL,
        Apelido VARCHAR(40),
        Genero BYTE NOT NULL,
        IdGrupo LONG NOT NULL,
        CHECK(Categoria BETWEEN 0 AND 5),
        CHECK(Genero BETWEEN 0 AND 5))
    conn.Close
    Set conn = Nothing
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  DamascenoJr. 6/3/2021, 14:44

    Yesus, faltou marcar o tópico como resolvido. Aguardamos sua ação.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Yesus gosta desta mensagem


    Conteúdo patrocinado


    [Resolvido]Regra de validação em campo da tabela via código Empty Re: [Resolvido]Regra de validação em campo da tabela via código

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 09:05