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 : 11/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, 13: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, 13:42, editado 1 vez(es)
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1757
    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, 08:14

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


    .................................................................................
    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 : 11/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, 18: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 : 2909
    Registrado : 21/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. 24/2/2021, 21: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 : 3711
    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, 06: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 irrestrito 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 : 11/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, 12: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 : 3711
    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, 13:00

    Olá!

    Qual das opções oferecidas deu certo ?

    Aguardamos


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


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito 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 : 11/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, 16: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 : 2909
    Registrado : 21/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, 09: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


      Data/hora atual: 1/8/2021, 06:15