Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Ajuda compreensão codigo
-
- Consultor
- Mensagens: 285
- Registrado em: Qua Dez 09, 2015 5:54 pm
Ajuda compreensão codigo
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
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
Re: Ajuda compreensão codigo
pedro,
Campos anuláveis vem vazios ou nulos. Você precisa tratar isso no código, algo assim:
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
...
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Ajuda compreensão codigo
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.
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.
-
- Consultor
- Mensagens: 285
- Registrado em: Qua Dez 09, 2015 5:54 pm
Re: Ajuda compreensão codigo
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
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
-
- Consultor
- Mensagens: 285
- Registrado em: Qua Dez 09, 2015 5:54 pm
Re: Ajuda compreensão codigo
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
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
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Ajuda compreensão codigo
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.
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.
-
- Consultor
- Mensagens: 285
- Registrado em: Qua Dez 09, 2015 5:54 pm
Re: Ajuda compreensão codigo
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
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
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Ajuda compreensão codigo
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.
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.