FLEX GRID E SQL
Pessoal, preciso de ajuda. Tenho que preencher uma flex grid com o conteudo de duas tabelas diferentes. Mas não estou conseguindo fazer a SQL certa.
A flex grid é preenchida ao clicar no botão consultar que depende de um numero que esta em uma text box. Ou seja a flex grid mostra os dados relativos aquele numero no text box. Estou mandando o codÃgo para que vocês tenham uma melhor idéia do que eu estou falando. Valeu Galera.
Private Sub cmdConsultar2_Click()
Dim x As Byte
If optNºSin.Value = True Then
Coma.ActiveConnection = Conex
Coma.CommandText = "SELECT NUM_RESSARC_APM FROM ressarcimento_apm WHERE NUM_SINISTRO= " & txtNumSin
Coma.CommandText = "SELECT * FROM HIST_RESSARC_APM WHERE num_sinistro= " & txtNumSin
Recor.CursorType = adOpenDynamic
Recor.Open Coma
If Recor.EOF = False Then
Recor.MoveFirst
While Not Recor.EOF
x = x + 1
With FlexGridHist
.TextMatrix(x, 0) = Recor!num_ressarc_apm
.TextMatrix(x, 1) = Recor!sig_sit_ressarc
End With
Recor.MoveNext
Wend
FrameHist.Visible = True
FrameDadosRess.Visible = False
End If
If optNºRess.Value = True Then
FrameDadosRess.Visible = True
FrameHist.Visible = False
End If
cmdVoltar2.Left = 4980
cmdVoltar2.Top = 5700
frmConsultar.Height = 6660
frmConsultar.Width = 6090
Me.Top = 885
Me.Left = 2665
End If
End Sub
A flex grid é preenchida ao clicar no botão consultar que depende de um numero que esta em uma text box. Ou seja a flex grid mostra os dados relativos aquele numero no text box. Estou mandando o codÃgo para que vocês tenham uma melhor idéia do que eu estou falando. Valeu Galera.
Private Sub cmdConsultar2_Click()
Dim x As Byte
If optNºSin.Value = True Then
Coma.ActiveConnection = Conex
Coma.CommandText = "SELECT NUM_RESSARC_APM FROM ressarcimento_apm WHERE NUM_SINISTRO= " & txtNumSin
Coma.CommandText = "SELECT * FROM HIST_RESSARC_APM WHERE num_sinistro= " & txtNumSin
Recor.CursorType = adOpenDynamic
Recor.Open Coma
If Recor.EOF = False Then
Recor.MoveFirst
While Not Recor.EOF
x = x + 1
With FlexGridHist
.TextMatrix(x, 0) = Recor!num_ressarc_apm
.TextMatrix(x, 1) = Recor!sig_sit_ressarc
End With
Recor.MoveNext
Wend
FrameHist.Visible = True
FrameDadosRess.Visible = False
End If
If optNºRess.Value = True Then
FrameDadosRess.Visible = True
FrameHist.Visible = False
End If
cmdVoltar2.Left = 4980
cmdVoltar2.Top = 5700
frmConsultar.Height = 6660
frmConsultar.Width = 6090
Me.Top = 885
Me.Left = 2665
End If
End Sub
Tente assim:
Crie uma variável para auxiliar: Dim ls as string
ls = "SELECT NUM_RESSARC_APM, HIST_RESSARC_APM "
ls = ls & "FROM ressarcimento_apm, HIST_RESSARC_APM "
ls = ls & " WHERE NUM_RESSARC_APM.NUM_SINISTRO = " & txtNumSin & " "
ls = ls & "AND NUM_RESSARC_APM.NUM_SINISTRO "
ls = ls & "= HIST_RESSARC_APM.NUM_SINISTRO"
Explicação: coloque os nomes dos campos das duas tabelas na clausula SELECT, primeiro os campos de uma tabela depois os da outra.
Na clausula FROM especifique o nome das duas tabelas separadas por vÃrgula.
Na clausula Where especifique a condição desejada para o campo da primeira tabela, seguida de um AND onde você referencia quail campo das tabela eÂÂÂ'comum para ambas, para que a Query possa faazer o JOIN das tabelas.
Crie uma variável para auxiliar: Dim ls as string
ls = "SELECT NUM_RESSARC_APM, HIST_RESSARC_APM "
ls = ls & "FROM ressarcimento_apm, HIST_RESSARC_APM "
ls = ls & " WHERE NUM_RESSARC_APM.NUM_SINISTRO = " & txtNumSin & " "
ls = ls & "AND NUM_RESSARC_APM.NUM_SINISTRO "
ls = ls & "= HIST_RESSARC_APM.NUM_SINISTRO"
Explicação: coloque os nomes dos campos das duas tabelas na clausula SELECT, primeiro os campos de uma tabela depois os da outra.
Na clausula FROM especifique o nome das duas tabelas separadas por vÃrgula.
Na clausula Where especifique a condição desejada para o campo da primeira tabela, seguida de um AND onde você referencia quail campo das tabela eÂÂÂ'comum para ambas, para que a Query possa faazer o JOIN das tabelas.
Tópico encerrado , respostas não são mais permitidas