PESQUISAR UM CAMPO EM UMA TABELA - .MDB

DJROBERTOSC 20/06/2017 18:34:25
#474636
Olá caros amigos, todos bem ? seguinte:
Tenho um banco de dados . mdb, neste banco de dados tem uma tabela cliente, e nessa tabela tem um campo OBS. ok.
O que preciso fazer é verificar todo o banco de dados e saber quantos do campo [Ô]obs[Ô] estão preenchidos e quantos não estão.
Tipo, quero ver em números em um textBox o total de não preenchidos, e em outro TextBox o total de preenchidos.
Não sou fera em VB. Então não estou me acertando em escrever esse código.
Ficaria extremamente grato, pela ajuda de vocês, sei que são feras na parada.
Agradeço de coração, vida longa e prospera, a todos.
SINCLAIR 21/06/2017 08:48:00
#474643
Resposta escolhida
Colega DJROBERTOSC,

Não é exatamente de VB que você precisa, mas de um comando SQL.

Supondo que sua tabela chame-se [Ô]tabMusicas[Ô] (sem as aspas, óbvio) e o campo observações chame-se [Ô]obs[Ô] (sem as aspas, óbvio):

select Nz(count(obs),0) as total_vazios from tabMusicas where (trim(obs)=[Ô][Ô]) or (isnull(obs))


Eu não uso Access (.mdb) a muitos e muitos anos. Procurei converter do comando SQL que seria no PostGreSQL para você usar no Access. Em teoria, deverá funcionar.

Tudo de bom.

DJROBERTOSC 21/06/2017 18:54:41
#474649
Citação:

:
Colega DJROBERTOSC,

Não é exatamente de VB que você precisa, mas de um comando SQL.

Supondo que sua tabela chame-se [Ô]tabMusicas[Ô] (sem as aspas, óbvio) e o campo observações chame-se [Ô]obs[Ô] (sem as aspas, óbvio):

select Nz(count(obs),0) as total_vazios from tabMusicas where (trim(obs)=[Ô][Ô]) or (isnull(obs))


Eu não uso Access (.mdb) a muitos e muitos anos. Procurei converter do comando SQL que seria no PostGreSQL para você usar no Access. Em teoria, deverá funcionar.

Tudo de bom.



Olá, caro amigo, não consegui realizar essa operação, não entendi esses códigos, por ex. Select Nz. Agradeço de coração sua ajuda, mas poderia ser mais explicito, (ainda sou meio leigo,hehe) Obrigado. :)
OMAR2011 21/06/2017 22:00:06
#474652
Cabra,é a assim como o Sinclair escreveu.
sql = [Ô]Select * from teste where IsNull(obs) [Ô] [ô] Para vazios
sql = [Ô]select * from teste where obs is not null[Ô] [ô]Para não vazios
SINCLAIR 22/06/2017 08:48:38
#474660
Colega DJROBERTOSC,

[Ô]Select[Ô] é a instrução que vai fazer a operação de [Ô]selecionar[Ô].

[Ô]Count(obs)[Ô] é a contagem de quantos campos [Ô]obs[Ô].

[Ô]Nz[Ô] é para não nulo, porque a contagem acima poderia resultar em [Ô]nada a trazer[Ô], então se nenhum registro atender aos critérios, ao invés de [Ô]nada[Ô] virá zero, por isto Nz(count(obs),0) que substitui um eventual [Ô]vazio[Ô] por zero.

[Ô]where (trim(obs)=[Ô][Ô]) or (isnull(obs))[Ô] é para que a [Ô]seleção de contagem[Ô] seja feita para os registros em que o campo obs seja vazio (nada dentro) ou nulo (nulo é diferente de [Ô]nada dentro[Ô], que poderia ser entendido como string vazia).

Assim a expressão:

select Nz(count(obs),0) as total_vazios from tabMusicas where (trim(obs)=[Ô][Ô]) or (isnull(obs))


é traduzida como

selecione a contagem dos campos obs, substituindo eventual nada por zero, quando o campo obs for igual a nada dentro ou se o campo obs for nulo


Agora é questão de você executar o comando SQL acima, no seu Access.

Caso não consiga rodar o comando SQL, então faltaria conhecimento de manejo do banco de dados e, neste caso, até sugiro que você não execute qualquer comando, sendo mais aconselhável você chamar algum profissional para fazer a operação para você.

Tudo de bom.

DJROBERTOSC 22/06/2017 12:55:39
#474666
Citação:

:
Colega DJROBERTOSC,

[Ô]Select[Ô] é a instrução que vai fazer a operação de [Ô]selecionar[Ô].

[Ô]Count(obs)[Ô] é a contagem de quantos campos [Ô]obs[Ô].

[Ô]Nz[Ô] é para não nulo, porque a contagem acima poderia resultar em [Ô]nada a trazer[Ô], então se nenhum registro atender aos critérios, ao invés de [Ô]nada[Ô] virá zero, por isto Nz(count(obs),0) que substitui um eventual [Ô]vazio[Ô] por zero.

[Ô]where (trim(obs)=[Ô][Ô]) or (isnull(obs))[Ô] é para que a [Ô]seleção de contagem[Ô] seja feita para os registros em que o campo obs seja vazio (nada dentro) ou nulo (nulo é diferente de [Ô]nada dentro[Ô], que poderia ser entendido como string vazia).

Assim a expressão:

select Nz(count(obs),0) as total_vazios from tabMusicas where (trim(obs)=[Ô][Ô]) or (isnull(obs))


é traduzida como

selecione a contagem dos campos obs, substituindo eventual nada por zero, quando o campo obs for igual a nada dentro ou se o campo obs for nulo


Agora é questão de você executar o comando SQL acima, no seu Access.

Caso não consiga rodar o comando SQL, então faltaria conhecimento de manejo do banco de dados e, neste caso, até sugiro que você não execute qualquer comando, sendo mais aconselhável você chamar algum profissional para fazer a operação para você.

Tudo de bom.



Caro amigo Euzébio Cruz, muito, mas muito obrigado mesmo por toda a explicação, agradeço de coração a sua dedicação em ajudar. Obrigado mais uma vez. :)
SINCLAIR 22/06/2017 16:30:01
#474668
Colega DJROBERTOSC,

Não precisa agradecer, tudo é feito com intuito de ajudar.

Mas sua educação, em um mundo cada vez mais repleto de pessoas egoístas, é muito bem vindo. é até um acalanto.

Veja em https://www.youtube.com/watch?v=_pE7S-lzpa4 um exemplo de como executar comandos SQL no Access.

Se não conseguir, volte a postar aqui que a gente vai tentando ajudar.

Tudo de bom.
OMAR2011 22/06/2017 16:41:57
#474669
Tenho a leve impressão que isto não funciona no Access.
select Nz(count(obs),0) as total_vazios from tabMusicas where (trim(obs)=[Ô][Ô]) or (isnull(obs))
Isto eu testei e funiona.
sql = [Ô]Select * from teste where IsNull(obs) [Ô] [ô] Para vazios
sql = [Ô]select * from teste where obs is not null[Ô] [ô]Para não vazios
SINCLAIR 22/06/2017 17:56:10
#474675
Colega OMAR2011,

Conforme eu disse no meu post inicial, com a resposta...

Citação:

Eu não uso Access (.mdb) a muitos e muitos anos. Procurei converter do comando SQL que seria no PostGreSQL para você usar no Access. Em teoria, deverá funcionar.



Como uso FreeBSD e não tenho Windows à disposição, nem tenho como testar.

Ou melhor, estou no momento em máquina com Windows, mas nada é instalado nela, só Windows que veio no Notebook mesmo (OEM).

Mas imagino que o colega que abriu o post vá testar e, como eu disse no post anterior, caso não consiga, ele pode voltar a postar aqui que tentaremos ir ajudando.

Tudo de bom.
Tópico encerrado , respostas não são mais permitidas