sou iniciante em VB e estou com o seguinte problema. Tenho o código abaixo funcionando corretamente. Ele preenche alguns textbox que são a viagem do motorista e um listview que exibe o abastecimentos que ele fez nesta viagem. O que preciso e que quando eu clicasse em avançar ou voltar, fossem exibidos no listview os abastecimentos relacionados a viagem. No banco o relacionamento esta todo certo. Por favor se puderem me ajudar fico grato.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Private Sub CommandAnterior_Click()
rs.MovePrevious
If rs.BOF = True Then
rs.MoveNext
End If
TextCodigoViagem = rs("CodigoViagem")
TextMotorista = rs("Motorista")
End Sub
Private Sub CommandCadAbastecimento_Click()
FormAbastecimento.Show
End Sub
Private Sub CommandGravar_Click()
rs("CodigoViagem") = TextCodigoViagem
rs("Motorista") = TextMotorista
rs.Update
End Sub
Private Sub CommandIncluir_Click()
TextCodigoViagem = ""
TextMotorista = ""
TextCodigoViagem.SetFocus
rs.AddNew
End Sub
Private Sub CommandProximo_Click()
rs.MoveNext
If rs.EOF = True Then
rs.MovePrevious
End If
TextCodigoViagem = rs("CodigoViagem")
TextMotorista = rs("Motorista")
End Sub
Private Sub Form_Load()
'Abre o banco de dados
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Fabio\Meus documentos\Teste\Teste.mdb"
'Abre a tabela
rs.CursorLocation = adUseClient
rs.Open "SELECT * FROM Tabela_Viagem", cn, adOpenDynamic, adLockOptimistic
Preenche
Preenche2
End Sub
'Rotina que preenche as caixas de texto de acordo com o registro selecionado atualmente no Recordset
Private Sub Preenche()
If Not (rs.EOF Or rs.BOF) Then 'Se a tabela não estiver vazia
TextCodigoViagem.Text = rs.Fields("CodigoViagem").Value 'Preenche a caixa de texto com o conteúdo do campo 'nome'
TextMotorista.Text = rs.Fields("Motorista").Value 'Preenche a outra caixa de texto com o conteúdo do campo 'icq'
Else 'Senão, ou seja, se estiver vazia
TextCodigoViagem.Text = "" 'Limpa as caixas de texto
TextMotorista.Text = ""
End If
End Sub
'Rotina que preenche as caixas de texto de acordo com o registro selecionado atualmente no Recordset
Private Sub Preenche2()
Dim List As ListItem
ListView1.ColumnHeaders.Add , , "Código", ListView1.Width / 2 'adiciona uma nova coluna no listview
ListView1.ColumnHeaders.Add , , "Posto", ListView1.Width / 2 'adiciona uma nova coluna no listview
'O comando view altera a forma de visualização dos itens
ListView1.View = lvwReport 'exibe detalhe dos itens (item e subitem)
'seleciona todos os registros da tabela
rs2.Open "select * from Tabela_Viagem, Tabela_Abastecimento where Tabela_Viagem.CodigoViagem = Tabela_Abastecimento.CodigoViagem and Tabela_Viagem.CodigoViagem='" & Trim(TextCodigoViagem.Text) & "'", cn, adOpenStatic, adLockOptimistic
Pergunta
Guest - Fabio -
Olá,
sou iniciante em VB e estou com o seguinte problema. Tenho o código abaixo funcionando corretamente. Ele preenche alguns textbox que são a viagem do motorista e um listview que exibe o abastecimentos que ele fez nesta viagem. O que preciso e que quando eu clicasse em avançar ou voltar, fossem exibidos no listview os abastecimentos relacionados a viagem. No banco o relacionamento esta todo certo. Por favor se puderem me ajudar fico grato.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Private Sub CommandAnterior_Click()
rs.MovePrevious
If rs.BOF = True Then
rs.MoveNext
End If
TextCodigoViagem = rs("CodigoViagem")
TextMotorista = rs("Motorista")
End Sub
Private Sub CommandCadAbastecimento_Click()
FormAbastecimento.Show
End Sub
Private Sub CommandGravar_Click()
rs("CodigoViagem") = TextCodigoViagem
rs("Motorista") = TextMotorista
rs.Update
End Sub
Private Sub CommandIncluir_Click()
TextCodigoViagem = ""
TextMotorista = ""
TextCodigoViagem.SetFocus
rs.AddNew
End Sub
Private Sub CommandProximo_Click()
rs.MoveNext
If rs.EOF = True Then
rs.MovePrevious
End If
TextCodigoViagem = rs("CodigoViagem")
TextMotorista = rs("Motorista")
End Sub
Private Sub Form_Load()
'Abre o banco de dados
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Fabio\Meus documentos\Teste\Teste.mdb"
'Abre a tabela
rs.CursorLocation = adUseClient
rs.Open "SELECT * FROM Tabela_Viagem", cn, adOpenDynamic, adLockOptimistic
Preenche
Preenche2
End Sub
'Rotina que preenche as caixas de texto de acordo com o registro selecionado atualmente no Recordset
Private Sub Preenche()
If Not (rs.EOF Or rs.BOF) Then 'Se a tabela não estiver vazia
TextCodigoViagem.Text = rs.Fields("CodigoViagem").Value 'Preenche a caixa de texto com o conteúdo do campo 'nome'
TextMotorista.Text = rs.Fields("Motorista").Value 'Preenche a outra caixa de texto com o conteúdo do campo 'icq'
Else 'Senão, ou seja, se estiver vazia
TextCodigoViagem.Text = "" 'Limpa as caixas de texto
TextMotorista.Text = ""
End If
End Sub
'Rotina que preenche as caixas de texto de acordo com o registro selecionado atualmente no Recordset
Private Sub Preenche2()
Dim List As ListItem
ListView1.ColumnHeaders.Add , , "Código", ListView1.Width / 2 'adiciona uma nova coluna no listview
ListView1.ColumnHeaders.Add , , "Posto", ListView1.Width / 2 'adiciona uma nova coluna no listview
'O comando view altera a forma de visualização dos itens
ListView1.View = lvwReport 'exibe detalhe dos itens (item e subitem)
'seleciona todos os registros da tabela
rs2.Open "select * from Tabela_Viagem, Tabela_Abastecimento where Tabela_Viagem.CodigoViagem = Tabela_Abastecimento.CodigoViagem and Tabela_Viagem.CodigoViagem='" & Trim(TextCodigoViagem.Text) & "'", cn, adOpenStatic, adLockOptimistic
'faz um loop por todos os registros da tabela
While rs2.EOF = False
'adiciona um novo item no listview
Set List = ListView1.ListItems.Add
With List
List.Text = rs2("CodigoAbastecimento")
List.SubItems(1) = rs2("Posto")
End With
'vai para proximo registro da tabela
rs2.MoveNext
Wend
End Sub
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.