UNIR OS DADOS DE 2 GRIDS E MONTAR O 3 TERCEIRO
possuo 2 grid com dados de uma tabela (Grid1 e Grid2)
ambos os grid possuem os mesmos campos:
tenho o terceiro grid chamado Grid3...
Quero relacionar os 2 grids pelos campo COD_MOTOQUEIRO e mostrar o campo var_RESULTADO do primeiro grid e do segundo grid nesse grid 3
exemplo:
GRID1:
CODIGO | COD_ETAPA | COD_MOTOQUEIRO | NOME | INICIO | TERMINO | var_RESULTADO |
1 10 3 Roberto 08:00 08:30 00:30
2 10 7 Maria 08:10 08:45 00:35
3 10 9 Silva 08:10 08:30 00:20
GRID2:
CODIGO | COD_ETAPA | COD_MOTOQUEIRO | NOME | INICIO | TERMINO | var_RESULTADO |
1 17 3 Roberto 09:00 10:35 01:35
2 17 7 Maria 09:10 10:50 01:40
3 17 9 Silva 09:10 10:20 01:10
GRID3:
| COD_MOTOQUEIRO | NOME | GRID1 | GRID2 | TOTAL ||
3 Roberto 00:30 01:35 02:05
7 Maria 00:35 01:40 02:15
9 Silva 00:20 01:10 01:30
ou seja, unir todos os 2 grid pelo campo COD_MOTOQUEIRO... logo apos o NOME coloquei na outra coluna no valor do campo var_RESULTADO do GRID1 e logo em seguida o campo var_RESULTADO do GRID2 e a ultima coluna é a soma das duas colunas var_RESULTADO daquela linha.
PS: logo acima coloquei o codigo onde localiza cada campo no grid.
Como faço isso?
ambos os grid possuem os mesmos campos:
If Not IsNull(Rs!CODIGO) Then .TextMatrix(.Rows - 1, 1) = Rs!CODIGO
If Not IsNull(Rs!COD_ETAPA) Then .TextMatrix(.Rows - 1, 2) = Rs!COD_ETAPA
If Not IsNull(Rs!COD_MOTOQUEIRO) Then .TextMatrix(.Rows - 1, 3) = Rs!COD_MOTOQUEIRO
If Not IsNull(Rs!NOME) Then .TextMatrix(.Rows - 1, 4) = Rs!NOME
If Not IsNull(Rs!INICIO) Then .TextMatrix(.Rows - 1, 5) = Rs!INICIO
If Not IsNull(Rs!TERMINO) Then .TextMatrix(.Rows - 1, 6) = Rs!TERMINO
If Not IsNull(Rs!var_RESULTADO) Then .TextMatrix(.Rows - 1, 7) = CDate(Rs!var_RESULTADO)
tenho o terceiro grid chamado Grid3...
Quero relacionar os 2 grids pelos campo COD_MOTOQUEIRO e mostrar o campo var_RESULTADO do primeiro grid e do segundo grid nesse grid 3
exemplo:
GRID1:
CODIGO | COD_ETAPA | COD_MOTOQUEIRO | NOME | INICIO | TERMINO | var_RESULTADO |
1 10 3 Roberto 08:00 08:30 00:30
2 10 7 Maria 08:10 08:45 00:35
3 10 9 Silva 08:10 08:30 00:20
GRID2:
CODIGO | COD_ETAPA | COD_MOTOQUEIRO | NOME | INICIO | TERMINO | var_RESULTADO |
1 17 3 Roberto 09:00 10:35 01:35
2 17 7 Maria 09:10 10:50 01:40
3 17 9 Silva 09:10 10:20 01:10
GRID3:
| COD_MOTOQUEIRO | NOME | GRID1 | GRID2 | TOTAL ||
3 Roberto 00:30 01:35 02:05
7 Maria 00:35 01:40 02:15
9 Silva 00:20 01:10 01:30
ou seja, unir todos os 2 grid pelo campo COD_MOTOQUEIRO... logo apos o NOME coloquei na outra coluna no valor do campo var_RESULTADO do GRID1 e logo em seguida o campo var_RESULTADO do GRID2 e a ultima coluna é a soma das duas colunas var_RESULTADO daquela linha.
PS: logo acima coloquei o codigo onde localiza cada campo no grid.
Como faço isso?
Cara, não leva a mal o comentário, mas você não acha melhor TENTAR e PENSAR antes de postar?
Você está perguntando como se faz um cálculo... isso não envolve dicas de programação ou técnicas mas sim lógica, apenas lógica.
O VBMania é um forum para ajudar em dicas e não fazer o programa pra ti.
Você está perguntando como se faz um cálculo... isso não envolve dicas de programação ou técnicas mas sim lógica, apenas lógica.
O VBMania é um forum para ajudar em dicas e não fazer o programa pra ti.
bom vou ajudar
faça um laço ou loop no primeiro grid, compare com o segundo e inclua as coincidencias de nomes no terceiro.
depois some as duas colunas de horas do terceiro e jogue na coluna total.
faça um laço ou loop no primeiro grid, compare com o segundo e inclua as coincidencias de nomes no terceiro.
depois some as duas colunas de horas do terceiro e jogue na coluna total.
ASHKATCHUP:
Baseado no Aurelio:
Fórum de discussão é uma ferramenta para páginas de Internet destinada a promover debates através de mensagens publicadas abordando uma mesma questão.
Se eu quizesse que programasse por mim, mandaria o projeto para ser baixado.... Sou usuario desse forum desde 2003... caso vc nao tenha [Ô]paciencia[Ô] ou [Ô]conhecimento[Ô] o suficiente para me ajudar é só ignorar-los.
Caso do dono do site ou os modeladores acharem q to perguntando demais (afinal, aqui num eh pra perguntar?) eu me retirarei do forum!
Caso contrario, usuarei bem meus 5 topicos abertos para tirar minhas duvidas....
MARCELO-TREZE:
Obrigado pela ajuda!
Bom, pensei em fazer uma sql q unisse os dos grid usando o LEFT JOIN e os campos COD_MOTOQUEIRO
será se dar certo usando o LETF JOIN nesse caso?
Baseado no Aurelio:
Fórum de discussão é uma ferramenta para páginas de Internet destinada a promover debates através de mensagens publicadas abordando uma mesma questão.
Se eu quizesse que programasse por mim, mandaria o projeto para ser baixado.... Sou usuario desse forum desde 2003... caso vc nao tenha [Ô]paciencia[Ô] ou [Ô]conhecimento[Ô] o suficiente para me ajudar é só ignorar-los.
Caso do dono do site ou os modeladores acharem q to perguntando demais (afinal, aqui num eh pra perguntar?) eu me retirarei do forum!
Caso contrario, usuarei bem meus 5 topicos abertos para tirar minhas duvidas....
MARCELO-TREZE:
Obrigado pela ajuda!
Bom, pensei em fazer uma sql q unisse os dos grid usando o LEFT JOIN e os campos COD_MOTOQUEIRO
será se dar certo usando o LETF JOIN nesse caso?
Parceiro verificando sua duvida acredito que um select da grid 1 com inner join da grid 2 seria mais indicado pois com left vc teria da primeira e nao da segunda, e verifique tb o formato dos campos hora para que o calculo aconteça sem problemas eu fiz ai uma ideia de como seria o select como nao sei qual formato vc uso nos campos inicio e termino nao coloquei nenhum tratamento
select
g1.COD_MOTOQUEIRO,g1.NOME
,GRID1 = (g1.TERMINO - g1.INICIO)
,GRID2 = (g2.TERMINO - g2.INICIO)
,TOTAL = (g1.TERMINO - g1.INICIO) + (g2.TERMINO - g2.INICIO)
from grid1 g1
inner join grid2 g2 on
g1.COD_MOTOQUEIRO = g2.COD_MOTOQUEIRO
select
g1.COD_MOTOQUEIRO,g1.NOME
,GRID1 = (g1.TERMINO - g1.INICIO)
,GRID2 = (g2.TERMINO - g2.INICIO)
,TOTAL = (g1.TERMINO - g1.INICIO) + (g2.TERMINO - g2.INICIO)
from grid1 g1
inner join grid2 g2 on
g1.COD_MOTOQUEIRO = g2.COD_MOTOQUEIRO
vamos lá
os dados vem de duas tabelas?
qual a estrutura do banco de dados?
os dados vem de duas tabelas?
qual a estrutura do banco de dados?
fiz algumas modificações!!!
possuo uma tabela somente chamada ETAPA_PARTICIPANTES nela possui os seguintes campos:
CODIGO long
COD_MOTOQUEIRA long
NOME text
INICIO date
TERMINO date
CATEGORIA text
CILINDRADA text
ETAPA text
possuo 6 textbox:
txtCategoria1
txtCilindrada1
txtEtapa1
txtCategoria2
txtCilindrada2
txtEtapa2
preciso montrar um grid com o resultado da subtração dos campos INICIO e TERMINO com esse criterio CATEGORIA = [ô][Ô] & txtCategoria1.Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada1.Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa1.Text & [Ô][ô]
isso eu fiz:
meu problema agora eh unir nessa mesma SQL outra subtração com outro criterio CATEGORIA = [ô][Ô] & txtCategoria2.Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada2.Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa2.Text & [Ô][ô]
então essas outra ficaria assim:
entao na verdade preciso unir essas 2 SQL numa só!
possuo uma tabela somente chamada ETAPA_PARTICIPANTES nela possui os seguintes campos:
CODIGO long
COD_MOTOQUEIRA long
NOME text
INICIO date
TERMINO date
CATEGORIA text
CILINDRADA text
ETAPA text
possuo 6 textbox:
txtCategoria1
txtCilindrada1
txtEtapa1
txtCategoria2
txtCilindrada2
txtEtapa2
preciso montrar um grid com o resultado da subtração dos campos INICIO e TERMINO com esse criterio CATEGORIA = [ô][Ô] & txtCategoria1.Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada1.Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa1.Text & [Ô][ô]
isso eu fiz:
SQL = [Ô]Select (cdate(INICIO)-CDATE(TERMINO)) AS var_RESULTADO, * From ETAPA_PARTICIPANTES WHERE CATEGORIA = [ô][Ô] & txtCategoria1.Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada1.Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa1.Text & [Ô][ô] [Ô]
meu problema agora eh unir nessa mesma SQL outra subtração com outro criterio CATEGORIA = [ô][Ô] & txtCategoria2.Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada2.Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa2.Text & [Ô][ô]
então essas outra ficaria assim:
SQL = [Ô]Select (cdate(INICIO)-CDATE(TERMINO)) AS var_RESULTADO2, * From ETAPA_PARTICIPANTES WHERE CATEGORIA = [ô][Ô] & txtCategoria2.Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada2.Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa2.Text & [Ô][ô] [Ô]
entao na verdade preciso unir essas 2 SQL numa só!
Alguem?
To precisando muito disso!
To precisando muito disso!
Sabe o que está confundindo a ente é o seguinte
porque unir duas sql que retornam o mesmo resultado
ou seja nos exemplos acima os campos para consulta são os mesmo (categoria e cilindrada), ou seja txtcategoria1 e txtcilindrada1 farão a mesma coisa que txtcategoria2 e txtcilindrada2, não é possivel unir duas QUERYS sendo que elas executam a mesma função apenas com campos difirentes, vc deve usa-las separadas mesmo.
ou fazer algo meio diferente
ao invés de criar os campos txtCilindrada1 e 2 txtCategoria1 e 2 txtEtapa1 e 2, você criar um array do campo e depois fazer um laço for
exemplo
txtCategoria(0)
txtCategoria(1)
txtCilindrada(0)
txtCilindrada(1)
txtEtapa(0)
txtEtapa(1)
o laço acima irá executar a primeira depois a segunda consulta
fora isto não da pra fazer mais nada
porque unir duas sql que retornam o mesmo resultado
ou seja nos exemplos acima os campos para consulta são os mesmo (categoria e cilindrada), ou seja txtcategoria1 e txtcilindrada1 farão a mesma coisa que txtcategoria2 e txtcilindrada2, não é possivel unir duas QUERYS sendo que elas executam a mesma função apenas com campos difirentes, vc deve usa-las separadas mesmo.
ou fazer algo meio diferente
ao invés de criar os campos txtCilindrada1 e 2 txtCategoria1 e 2 txtEtapa1 e 2, você criar um array do campo e depois fazer um laço for
exemplo
txtCategoria(0)
txtCategoria(1)
txtCilindrada(0)
txtCilindrada(1)
txtEtapa(0)
txtEtapa(1)
For F = 0 To 1
SQL = [Ô]Select (cdate(INICIO)-CDATE(TERMINO)) AS var_RESULTADO, * From ETAPA_PARTICIPANTES WHERE CATEGORIA = [ô][Ô] & txtCategoria(F).Text & [Ô][ô] AND CILINDRADA = [ô][Ô] & txtCilindrada(F).Text & [Ô][ô] AND ETAPA = [ô][Ô] & txtEtapa(F).Text & [Ô][ô]
....
Next F
o laço acima irá executar a primeira depois a segunda consulta
fora isto não da pra fazer mais nada
SÃO 2 RESULTADOS DIFERENTES!
eh pq vou usar o resultado das 2 consultas numa mesma linha do grid.
exemplo
MOTOQUEIRO ETAPA1 ETAPA2
Raimundo resultado1 resultado2
Maria resultado1 resultado2
José resultado1 resultado2
por isso preciso dos 2 resultados....
resultado1 = txtcategora1 e txtcilindrada1 e etapa1
resultado2 = txtcategora2 e txtcilindrada2 e etapa2
eh pq vou usar o resultado das 2 consultas numa mesma linha do grid.
exemplo
MOTOQUEIRO ETAPA1 ETAPA2
Raimundo resultado1 resultado2
Maria resultado1 resultado2
José resultado1 resultado2
por isso preciso dos 2 resultados....
resultado1 = txtcategora1 e txtcilindrada1 e etapa1
resultado2 = txtcategora2 e txtcilindrada2 e etapa2
Alguem?
Tópico encerrado , respostas não são mais permitidas