Estou fazendo um form no Visual Basic e preciso saber se tem como eu pegar registros de duas tabelas, isto é, como se fosse um linkmento. Exemplo disso é: Pegar na minha tabela de Inquilino e da tabela Fiador os respectivos nomes, telefones (comerciais, residenciais e celulares).
O meu form tem as seguintes informações:
2 frames
- Frame Inquilino
- Frame Fiador
No frame Inquilino tem os campos:
Nome, Telefone_Residencial, Telefone_comercial, Celular
No Frame Fiador tem os Campos:
Nome, Telefone_Residencial, Telefone_comercial, Celular
E os button's Imprimir, Fechar, Próximo, Anterior
Então resumidamente dizendo:
Desejo saber se tem como eu toda vez que passar de registro de inquilino o registro de Fiador segue conforme o seu linkamento?!! Inquilino correspondendo c/ Fiador!! Isso tem como fazer?!!
A Rotina que fiz está assim:
Option Explicit
Dim WithEvents rs_imobiliaria As ADODB.Recordset
Dim strsql As String
Private Sub apresentar_imobiliaria()
Screen.MousePointer = 11
Call AbrirConexaoAccess
On Error GoTo trata_erro
Set rs_imobiliaria = New ADODB.Recordset
rs_imobiliaria.CursorLocation = adUseClient
' strsql = "SELECT * FROM Proprietario WHERE Endereco_Residencial LIKE '%" _
' & txt_consulta_Endereco.Text & "%'"
strsql = "SELECT t1.*, t2.* FROM inquilino as t1, fiador as t2 where ((t1.idfiador=t2.id) and (t1.nome='%" & txt_Nome.Text & "%'))"
rs_imobiliaria.Open strsql, cn_access, adOpenDynamic, adLockOptimistic
rs_imobiliaria.ActiveConnection = Nothing
Call FecharConexaoAccess
Screen.MousePointer = 0
Exit Sub
trata_erro:
Call FecharConexaoAccess
Screen.MousePointer = 0
MsgBox Err.Number & vbCrLf & Err.Description
End Sub
Private Sub cmd_fechar_Click()
Unload Me
End Sub
Private Sub cmd_imprimir_Click()
MsgBox ("Em Desenvolvimento! Arguarde!")
End Sub
Private Sub cmd_pag_anterior_Click()
rs_imobiliaria.MoveMax
End Sub
Private Sub cmd_pag_posterior_Click()
rs_imobiliaria.MoveNext
End Sub
Private Sub Form_Load()
Me.Top = 590
Me.Left = 0
Call apresentar_imobiliaria
End Sub
Private Sub rs_imobiliaria_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
ByVal pError As ADODB.Error, adStatus _
As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
On Error GoTo trata_erro
Screen.MousePointer = 11
If rs_imobiliaria.BOF = False _
And rs_imobiliaria.EOF = False Then
Screen.MousePointer = 11
txt_Nome.Text = rs_imobiliaria!Nome
' txt_Endereco_Residencial.Text = rs_imobiliaria!Endereco_Residencial
' txt_Endereco_Trabalho.Text = rs_imobiliaria!Endereco_trabalho
txt_Telefone_Residencial.Text = rs_imobiliaria!Telefone_residencial
txt_Telefone_Comercial.Text = rs_imobiliaria!Telefone_comercial
txt_Celular(0).Text = rs_imobiliaria!Celular
' txt_Fax.Text = rs_imobiliaria!Fax
' Cmb_Estado_Civil.Text = rs_imobiliaria!Estado_civil
' txt_Identidade.Text = rs_imobiliaria!Identidade
' txt_CPF.Text = rs_imobiliaria!CPF
' txt_Profissao.Text = rs_imobiliaria!Profissao
Else
MsgBox "Registro não Encontrado!" & vbCrLf
Call Limpar
End If
Screen.MousePointer = 0
Exit Sub
trata_erro:
Screen.MousePointer = 0
MsgBox Err.Number & vbCrLf & Err.Description
End Sub
Private Sub Limpar()
'
' txt_Nome.Text = "----------"
' txt_Endereco_Residencial(0).Text = "----------"
' txt_Endereco_Trabalho.Text = "----------"
' txt_Telefone_Residencial.Text = "----------"
' txt_Telefone_Comercial.Text = "----------"
' txt_Celular.Text = "----------"
' txt_Fax.Text = "----------"
' Cmb_Estado_Civil.Text = "Escolha o Estado Civil"
' txt_Identidade.Text = "----------"
' txt_CPF.Text = "----------"
' txt_Profissao.Text = "----------"
End Sub
Obrigado desde já!!