Ir para conteúdo
Fórum Script Brasil
  • 0

Consultar 2 tabelas no Access


ƒ Edu ƒ

Pergunta

Olá pessoal.

Preciso consultar dados em 2 tabelas do banco em Access ao mesmo tempo, e jogar o resultado nos campos de um formulário. Quando executo a busca, o vb me retorna o erro "O item não pode ser encontrado na coleção correspondente ao nome ou ordinal solicitado". O erro refere-se ao campo codaluno que deveria ser exibido no frmAluno.txtAluno. O campo codaluno é do tipo numero.

Estou utilizando o seguinte código:

Private Sub cmdBuscar_Click()
Dim strbusca As Integer
Call Abrir_Banco

strbusca = TxtMat

sql = "SELECT tbaluno.*, tbfiliacao.* FROM tbaluno, tbfiliacao Where tbaluno.codaluno = " & strbusca & ""

Set rs = New ADODB.Recordset
rs.ActiveConnection = bd
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.Open sql, bd, adOpenStatic, adLockOptimistic
    
    If Not rs.EOF Then
    frmAluno.txtShow = rs!codaluno
    frmAluno.txtAluno = rs!nomealuno
    frmAluno.txtBairro = rs!bairro
    frmAluno.txtBairroMae = rs!bairromae
    frmAluno.txtBairroPai = rs!bairropai
    frmAluno.txtCEP = rs!cep
    frmAluno.txtCEPMae = rs!cepmae
    frmAluno.txtCEPPai = rs!ceppai
    frmAluno.txtCidade = rs!cidade
    frmAluno.txtCidadeMae = rs!cidademae
    frmAluno.txtCidadePai = rs!cidadepai
    frmAluno.txtDataMat = rs!datamatricula
    frmAluno.txtDataNasc = rs!datanascimento
    frmAluno.txtEndereco = rs!endereco
    frmAluno.txtEndMae = rs!enderecomae
    frmAluno.txtEndPai = rs!enderecopai
    frmAluno.txtMae = rs!nomemae
    frmAluno.txtPai = rs!nomepai
    frmAluno.txtRG = rs!rg
    frmAluno.txtSexo = rs!sexo
    frmAluno.txtTelefone = rs!telefone
    frmAluno.txtTelMae = rs!telmae
    frmAluno.txtTelPai = rs!telpai
    frmAluno.txtUF = rs!estado
    frmAluno.txtUFMae = rs!estadomae
    frmAluno.txtUFPai = rs!estadopai
    
    Unload Me
    frmAluno.Show

    Else
    TxtMat = ""
    MsgBox "Aluno não encontrado", vbInformation, "Aviso"
    TxtMat.SetFocus
    End If

rs.Close

End Sub

Alguém sabe me dizer onde está o erro?

Editado por kuroi
Adicionar Tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

se esse campo existe nas duas tabelas, faca assim ó:

frmAluno.txtShow = rs![nome_da_tabela_q_vc_quer.codaluno]

faca o mesmo pra todos os campos q aparecerem nas duas tabelas.

outra coisa, nesse seu select você podia fazer um join pra dexar melhor não??

de uma olhada aqui: http://scriptbrasil.com.br/forum/index.php?showtopic=108732

Link para o comentário
Compartilhar em outros sites

  • 0
Nossa meu, como eu queria manjar de VB igual a você!

mas eu não manjo nd, sou mó burrao.

Mais uma dúvida... A busca funcionou sem o INNER JOIN, mas o que pode melhorar se eu coloca-lo no código?

hum, de uma olhada no link q eu te passei. a não ser q no access seja diferente (o q eu acho q não), esse seu select deve estar funcionando como um CROSS JOIN, veja na parte final do tutorial.

la tem um quadrinho mostrando como os dados são retornadas tanto pro INNER JOIN quanto pro CROSS JOIN. compare os dois e veja se você não concorda q o INNER JOIN é melhor, já q a forma q você esta fazendo (semelhante ao CROSS JOIN) deve multiplicar os dados.

se você não entender la, da um toque ae.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...