Notifications
Clear all

Ajuda sql select

17 Posts
2 Usuários
0 Reactions
3,140 Visualizações
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Boa noite a todos.

Estou montando um sistema excel/access só que estou com umas dúvidas de puxar os dados do banco.

Estou usando um banco com 4 tabelas e gostaria de puxar os arquivos para uma aba do excel de acordo com as relações do banco.
Criei as relações no banco, mas na hora de puxar dá erro.

Se alguém puder me ajudar, agradeço muito.
Segue em anexo a planilha e o banco.

Desde já, meu muito obrigado a todos

 
Postado : 30/11/2017 4:18 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

jose7br,

Boa noite!

Veja se é assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 30/11/2017 5:17 pm
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Bom dia Wagner, tudo bem?

Muito obrigado pela ajuda desde já.

Infelizmente o código não rodou aqui. Mas segundo a sua planilha é basicamente isso mesmo, e inserir o mesmo nome no campo do planejador, e o campo marco ele irá pegar os dados da tabela marco no banco.

Dei um f8 para depurar o código
Ele roda e quando chega no ponto While Not Dados.EOF o ponteiro de depuração vai direto para o End e não chega a entrar na linha "Sheets("inicio").Range("B" & Linha).Value = Dados!tap"

 
    While Not Dados.EOF
        Sheets("inicio").Range("B" & Linha).Value = Dados!tap
        Sheets("inicio").Range("C" & Linha).Value = Dados!titulo
        Sheets("inicio").Range("D" & Linha).Value = Dados!local
        Sheets("inicio").Range("E" & Linha).Value = Dados!empresa
        Sheets("inicio").Range("F" & Linha).Value = Dados!Status
        Sheets("inicio").Range("G" & Linha).Value = Dados!fase
        Sheets("inicio").Range("H" & Linha).Value = Dados!nome
        Sheets("inicio").Range("I" & Linha).Value = Dados!id_planejador
        Sheets("inicio").Range("J" & Linha).Value = Dados!marco
        Linha = Linha + 1
        Dados.MoveNext
    Wend
 
Postado : 01/12/2017 6:31 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

jose7br,

Bom dia!

Esqueci de informar alguns detalhes. Desculpe aí. Para funcionar corretamente aí você deve:
1 - Alterar, no seu banco de dados, o campo id_gestor da tabela atd_projetos ou o campo id_matricula na tabela tb_usuarios. O formato deles está incompatível um com o outro (um está com 1 e o outro está como 001, 002, etc). Como você definiu esses campos como texto de 255 caracteres o campo fica livre e aceita qualquer coisa. Todavia, você há de convir comigo que, para o computador, 1 é diferente de 001. Essa é a razão para que o ponteiro do processador pule da linha de comando While Not Dados.EOF direto para o Wend. Ou seja: não há dados dentro do Recordset.

2 - No menu Ferramentas do VBA (Ferramentas/Referências) você deve inserir a Referência "Microsoft AcitveX Data Objects 6.1 Library (ou posterior).

3 - Os dois arquivos (o Excel com a macro e o banco de dados do Access) devem ficar na mesma pasta para funcionar corretamente.

4 - Com relação as coluna I e J (planejador e marco) eu já fiz de forma que o código busque os campos id_planejador e marco na tabela atd_projetos. Basta apenas você inserir dados nas tabelas apropriadas e fazer mais um INNER JOIN no comando SQL para fazer o link com as tabelas certas.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 01/12/2017 7:19 am
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Bom dia Wagner, tudo bem?

Então, o campo do id_gestor e id_matricula estão como string devido ao fato que a matricula dos usuários podem contar letra.
Acha melhor eu apontar esse campo do id_gestor e o id_matricula para o campo código que é numero automatico da tabela tb_usuario e fazer a relação?

Fiz as alterações no banco aqui mas não deu certo não.
Tem como me enviar o banco que você atualizou para eu ver aqui?

e mais uma vez
Muito obrigado!

 
Postado : 01/12/2017 8:36 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

jose7br,

Não há problema que os campos chaves sejam string ou qualquer outro tipo de dados. Obviamente, ao definir uma chave primária (que serve para se fazer consultas em tabelas) deve-se optar por escolher um campo, preferencialmente, numérico e que o número contido nesse campo identifique o registro de forma única, como por exemplo uma numeração automática (chave) ou o número do CPF ou CNPJ. O único problema que você vai ter é que o usuário comum, na hora de efetuar uma consulta e tiver que digitar uma string, pode errar de "n" formas diferentes e aí a consulta não será realizada.

Segue dois arquivos: uma imagem da aplicação funcionando normalmente (agora aqui no meu trabalho) e o banco de dados alterado.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 01/12/2017 11:37 am
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Bom dia Wagner, tudo bem?

E se agora agora eu criar uma nova aba onde irei salvar os dados no banco de dados?

Minha dúvida é, como farei para manter as relações no banco? já salvarei só o id no banco.

Ah e deu certo aqui suas alterações e muito obrigado pela ajuda.

 
Postado : 04/12/2017 6:12 am
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Boa tarde Wagner, tudo bem?

Estou com mais uma dúvida aqui nos meus estudos.

Tem como eu passar o parametro do select para dentro de uma variavel de acordo com uma celula?

tipo assim funciona.
ComandoSQL = "select * FROM TB_RGM WHERE Usina like 'Vale' and Carteira_Ano NOT in ('99','99/17','15','16')"

Teria como fazer algo parecido
teste = "plan1.cells(1,1)"

ComandoSQL = teste

Existe essa possibilidade?

Desde já, muito obrigado

 
Postado : 04/12/2017 1:03 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

jose7br,

Sim, tem essa possibilidade de usar os valores de células dentro de variáveis. Mas... não seria melhor usar diretamente buscando na célula?

ComandoSQL = plan1.cells(1,1)

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/12/2017 3:52 pm
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Melhor mesmo Wagner, usar essa opção!
Valeu

E sobre a outra pergunta?
Se eu criar uma aba para inserir os valores no banco, como ficará a parte de relacionamento da tabela no vba?

ahhh..e muito obrigado pela ajuda :D

 
Postado : 04/12/2017 4:33 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

criar uma aba para inserir os valores no banco, como ficará a parte de relacionamento da tabela no vba?

Não entendi...

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/12/2017 5:18 pm
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Bom dia Wagner, tudo bem?

Na primeira aba do arquivo eu inseri um select que puxa os dados do banco de dados.

Agora, estou vendo a parte de inserir os dados no banco.

Daí criei outra aba onde inseri os dados.
Minha dúvida é na hora de inserir os dados nas outras tabelas mantendo o relacionamento.
Para que na outra aba possa recuperar os dados do banco

 
Postado : 05/12/2017 5:57 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

jose7br,

Bom dia!

Você agora vai inserir dados no Excel para depois inserir esses dados (do Excel) numa tabela do Access? É isso? Se for isso, pra que inserir os dados no Excel e depois levar para o Access? Porque não insere direto do Access?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 05/12/2017 6:42 am
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Olá Wagner,

A ideia é criar um sisteminha com várias abas e tabelas no access para estudos mesmo, pois tenho dificuldades na parte de relacionamento entre tabelas.

Daí irei criar mais tabelas no banco.

Todos os exemplos que vi, abri um formulário para preencher os dados, a minha ideia é fazer direto da planilha mesmo para fins de estudos.
Ah e muito obrigado mais uma vez

 
Postado : 05/12/2017 7:04 am
(@jose7br)
Posts: 67
Trusted Member
Topic starter
 

Olá Wagner boa tarde, tudo bem?

A ideia é criar um sisteminha com várias abas e tabelas no access para estudos mesmo, pois tenho dificuldades na parte de relacionamento entre tabelas.

Daí irei criar mais tabelas no banco.

Todos os exemplos que vi, abri um formulário para preencher os dados, a minha ideia é fazer direto da planilha mesmo para fins de estudos.
Ah e muito obrigado mais uma vez

jose7br,

Bom dia!

Você agora vai inserir dados no Excel para depois inserir esses dados (do Excel) numa tabela do Access? É isso? Se for isso, pra que inserir os dados no Excel e depois levar para o Access? Porque não insere direto do Access?

 
Postado : 06/12/2017 1:02 pm
Página 1 / 2