Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Ajuda compreensão codigo

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
pedro_mexico
Consultor
Consultor
Mensagens: 285
Registrado em: Qua Dez 09, 2015 5:54 pm

Ajuda compreensão codigo

Mensagem por pedro_mexico »

Bom dia fórum.
A minha dúvida e a seguinte.
Tenho um formulário Excel vba e estou a adaptar banco de dados access, como o conhecimento é nenhum, estou a tentar aos poucos com ajuda de antigos tópicos do fórum e vídeos do YouTube, mas não tem sido fácil.
A minha dúvida é :
Se existir campos na tabela access vazias, é possível fazer o carregamento dos dados no formulário?
Já copiei vários exemplos e o carregamento de valores do access para as textboxs da sempre erro, e estou a tentar perceber se é por existirem campos nas tabelas do access vazias.
Fico a aguardar ajuda para compreensão da lógica Excel vba access.
Obrigado


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Ajuda compreensão codigo

Mensagem por webmaster »

pedro,

Campos anuláveis vem vazios ou nulos. Você precisa tratar isso no código, algo assim:

Código: Selecionar todos

If IsNull(recordSet("SobreNome") Then
        textBoxSobreNome.Text = ""
Else
...


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Ajuda compreensão codigo

Mensagem por Mikel Silveira Fraga »

Pedro, bom dia.

Existe a situação colocada pelo Tomás que é muito útil, mas tem que se considerar uma situação, que vou tentar explicar aqui.

Quando você cria um registro e existe na tabela do Access um campo texto, por padrão ele vem como Nulo (Null). Nessa condição, se for feito uma tentativa de carga para o TextBox, a solução do Tomás será eficaz.

Em contra-partida, se em algum momento, você salvou um registro via Insert, e o mesmo campo recebeu um valor Vazio (Empty), esse argumento IsNull vai falhar, pois apesar de ser um valor Vazio, é diferente de Nulo.

Vou te dar duas sugestões, que acredito irão ajudar muito:
- Procure sempre utilizar o comando VBA.TypeName(recordSet("NomeColuna")), para saber o tipo de valor que esta na variável;
- Existem cursos gratuitos de SQL, que irão te ajudar muito nessa empreitada. Sei o quão difícil é começar com SQL, principalmente sem ajuda. Por isso falo dos cursos. Procura o site SoftBlue, que foi o primeiro curso de SQL que fiz e ajudou muito. Lá, eles utilizam o MySQL, mas independente do banco de dados, a base e procedimentos padrões são os mesmos.

Espero que esse comentário possa te ajudar e a outros do fórum.

Abraços e excelente semana.


pedro_mexico
Consultor
Consultor
Mensagens: 285
Registrado em: Qua Dez 09, 2015 5:54 pm

Re: Ajuda compreensão codigo

Mensagem por pedro_mexico »

Boa tarde webmaster e obrigado mikel fraga.
Eu como disse, não percebo nada, o pouco que vou fazendo é coisas tiradas aqui do fórum e da Internet.
Eu acho que não estou a utilizar mySQl, utilizo o SQL nos códigos, mas acho que não é mySQl. Tenho uma classe conexao onde tem a conexão dão banco de dados access( até posso estar a usar o que diz, mas como disse não percebo)
A gravação de dados do formulário no banco de dados tenho no código o " insert into", e está a gravar mesmo com campos vazios, sem valor, agora o retorno é que dá o erro.
O que estou a perceber por as vossas ajudas é que eu devo indicar a tabela que vai receber inicialmente valores vazios é isso?
Mas como eu estou a fazer registo de manutenções automóveis, as vezes por falta de informação, posso deixar uma textbox vazia, que normalmente não deixaria, e se assin for e não tiver mencionado essa coluna, o código iria dar novamente erro não é?

Não existe nada que faça o retorno dos valores para as textboxs todas e englobe o estar vazio ou não, isto é, o código role mesmo que encontre um valor da tabela vazia e preencha a textbox seguinte deixando essa vazia


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


pedro_mexico
Consultor
Consultor
Mensagens: 285
Registrado em: Qua Dez 09, 2015 5:54 pm

Re: Ajuda compreensão codigo

Mensagem por pedro_mexico »

Boa noite,

estive a pensar, nao sei se é possivel, ou se ajuda.
as tabelas do access tem valores vazios porque eu na primeira fase do formulario so introduzo metade dos dados, depois mais tarde é que faço a pesquisa e concluo os dados em falta, esta parte é que me esta a dar erro, mas e se fosse possivel, ao gravar na primeira parte do formulario as textboxs e combobox vazias como "0"?
assim ao carregar futuramente os dados do banco de dados, ja todas as tabelas terias preenchidas pelo menos com o valor "0".
agora nao sei como fazer, ja que tenho essas textbox e combobox invisiveis


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Ajuda compreensão codigo

Mensagem por Mikel Silveira Fraga »

Pedro, bom dia.

Inicialmente, vamos a questão do curso. Quando digo que a SoftBlue utiliza o MySQL, na verdade é um banco diferente do Access. Outras alternativas seriam PostgreeSql, SQL Server, Firebird, etc. Todos esses são Softwares diferentes para Banco de Dados.

Já a questão do SQL, seria a linguagem de "programação" do banco de dados. Na verdade, é conhecida como Linguagem de Consulta. Todos esses bancos tem como base o SQL. Por isso que disse, mesmo aprendendo a utilizar o SQL no MySQL, a linguagem não é muito diferente no Access, pois a base é a mesma.


Sobre a questão das cargas dos valores, seria interessante se conseguisse colocar um exemplo. Pelo que percebi, você tem situações em que utiliza valores numéricos, devidos os valores 0 que mencionou. Se esta utilizando formatação com o VBA.Format, no momento do preenchimento, pode ser esse o erro.

Nesse caso, a situação que o Tomás colocou funcionaria perfeitamente.

Se tiver como colocar um exemplo, ajudaria a compreendermos melhor sua situação.

De qualquer forma, estamos aqui e vamos tentando ajudar.

Abraços e bom final de semana.


pedro_mexico
Consultor
Consultor
Mensagens: 285
Registrado em: Qua Dez 09, 2015 5:54 pm

Re: Ajuda compreensão codigo

Mensagem por pedro_mexico »

Boa tarde Mikel.
Obrigado pela dica, tenho feito mais pesquisas com a indicação SQL e tem aparecido uma ou outra ajuda que me fez andar para a frente sem a situação do colocar "0".
Agora estou em fase de tentar encontrar um código que faça pesquisa por datas(em listview) (este código já o tenho a funcionar), mas queria juntar a hipótese de juntar outra seleção de outra textbox.
Isto é a minha pesquisa tem a ver com viaturas, a ideia é fazer pesquisa entre data X e data Y e dentro desses resultados se a textbox1 tb tiver preenchida com a matrícula ele retorna logo resultados só para essa viatura


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Ajuda compreensão codigo

Mensagem por Mikel Silveira Fraga »

Pedro, boa noite.

Desculpa não ter respondido antes, mas esses dias estão bastante corridos.

Vamos lá, essa junção que você mencionou, tenho como te ajudar. A uns anos atrás, estava publicando alguns vídeos no Youtube, e um deles foi exatamente as diferenças de realizar filtragem de dados, entre ListBox e ListView. Talvez esses vídeos possam te ajudar.

Seguem os links abaixo:
https://www.youtube.com/watch?v=uygU2CWr0pM
https://www.youtube.com/watch?v=dQVzH9V4sSQ

Espero que possam lhe ajudar.

Abraços e excelente semana.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder