mestre fyoda Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 Ta dando erro no form4vou estar passando o codigo e vocês me ajudem por favor por favor . http://ee.domaindlx.com/teste123/biblioteca.mdb http://ee.domaindlx.com/teste123/Form1.frm http://ee.domaindlx.com/teste123/Form2.frm http://ee.domaindlx.com/teste123/Form3.frm http://ee.domaindlx.com/teste123/Form4.frmhttp://ee.domaindlx.com/teste123/Project1.vbp Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 Qual é, exatamente, o erro?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 a conexao não pode ser usada para realizar essa operação . ela esta fecha ou invalida neste contexto . Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub Form_Load() cn.CursorLocation = adUseClient 'Define o cursor como local cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\biblioteca.mdb" 'Abre o BD rs.Open "SELECT * FROM alunos", cn, adOpenDynamic, adLockOptimistic 'Abre a tabela no objeto "rs" End Sub Private Sub List1_Click() Dim Dados As String, Mensagem As String Dim Consulta_SQL As String Dim Resultado As String Dim Registro As String Dado = List1.Text Consulta_SQL = " Select * From alunos where nome LIKE '%" & Dado & "%' order by nome" Set alunos = Arquivo.openRecordset(Consulta_SQL, dbopenSnapshot) Rem Mensagem = " Posição retornada por Pesquisa.AbsolutePosition = " + _ Str(alunos.AbsolutePosition) If alunos.AbsolutePosition > -1 Then Mensagem = " Nome encontrado : " + alunos("nome") Resultado = MsgBox(Mensagem, vbInformation) Else Resultado = MsgBox("Nome não encontrado.", vbInformation) End If Registro = alunos(0) Resultado = MsgBox(Registro, vbInformation) Relacionamento = " Select * From alunos,pegar where pegar.id = alunos.id;" Set alunos = Arquivo.openRecordset(Relacionamento, dbopenDynaset) Registro = Registro - 1 alunos.Move Registro End Sub Private Sub Text5_Change() Dim Dados As String, Mensagem As String Dim Consulta_SQL As String Dim Resultado As String Dim Contador As String, Total_encontrado As Integer Contador = 0 Total_encontrado = 0 List1.Clear Dado = Text5.Text Set rs = CreateObject("ADODB.Recordset") With rs .Open " Select * From alunos where nome LIKE '%" & Dado & "%' order by nome" If Total_encontrado > 1 Then List1.ToolTipText = " Clique em um dos nomes disponiveis para verificar dados completos . " Else List1.ToolTipText = "Nenhum nome disponivel . " End If Do If alunos.AbsolutePosition > -1 Then List1.AddItem (alunos("nome")) Contador = Contador + 1 alunos.MoveNext End If Loop Until Contador >= Total_encontado Relacionamento = " Select * From alunos,pegar where pegar.id = alunos.id;" alunos.MoveFirst End With End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 a conexao não pode ser usada para realizar essa operação . ela esta fecha ou invalida neste contexto . Em qual linha? Seja mais específico, por favor. Sempre poste a mensagem do erro (já que os números de erro não significam nada para mim [eu vou ficar guardando número na cabeça?! ] ) e a parte do código em que o erro ocorre. De preferência, poste a rotina completa em que o erro ocorre ou pelo menos do começo da rotina até a linha do erro.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 ta nessa parte With rs .Open " Select * From alunos where nome LIKE '%" & Dado & "%' order by nome" , mas como faço para deixar a linha que eu quero em vermelho ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 ta nessa parte With rs .Open " Select * From alunos where nome LIKE '%" & Dado & "%' order by nome" Sim, cadê a conexão ali? No segundo parâmetro de Open você deve informar a conexão (um ADODB.Connection que você cria anteriormente). No seu caso, é o "cn" que você declarou lá no General Declarations e que abrir no Form_Load.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 agora deu pau nessa linha objeto requride . If alunos.AbsolutePosition > -1 Then Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 agora deu pau nessa linha objeto requride . If alunos.AbsolutePosition > -1 Then Claro, "alunos" não existe ali. Só existe lá no List1_Click. Você deve ter em mente o escopo de variáveis dentro do VB. Declare ela no General Declarations e o seu código funcionará.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 COMO SE FAZ ISSO , me de um exemplo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 COMO SE FAZ ISSO , me de um exemplo Ué?! Eu falei ali em cima:Declare ela no General Declarations e o seu código funcionará.Ou seja, é só ir no General Declarations (onde *você* declarou o "cn" e o "rs" - você nunca se perguntou por quê eles estão ali? ) e coloque o "alunos" também:dim alunos as RecordsetSacou? Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 ta dando erro aqui denovo :erro : Object Variable OR with block variable not set If alunos.AbsolutePosition > -1 Then Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 ta dando erro aqui denovo :erro : Object Variable OR with block variable not set If alunos.AbsolutePosition > -1 Then Onde você inicializa "alunos"? Você só pode utilizá-lo depois de tê-lo inicializado. Isso ocorre em List1_Click, porém você está tentando utilizá-lo em Text5_Change. Não sei qual é a sua idéia, mas do jeito que está, você deve primeiro dar um clique na List1 para depois poder escrever algo na Text5. E, você precisa estudar um pouquinho mais a estrutura de um programa (principalmente objetos, escopos, orientação a eventos).Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 eu quero fazer algo assim , quando o usuario digitar a letra inicial do nome , me mostre todas elas q estao no bd dentro da List .você tem algum tuto sobre isso ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 eu quero fazer algo assim , quando o usuario digitar a letra inicial do nome , me mostre todas elas q estao no bd dentro da List .você tem algum tuto sobre isso ? Você não vai achar um tutorial especificamente sobre isso. Tutoriais, em geral, explicam como utilizar os recursos disponíveis e você deverá organizá-los de forma a fazer o que precisa.Agora, se é isso que você quer fazer (listar os nomes de acordo com o que foi digitado na caixa Text5) pra quê tanta complicação? Veja:Private Sub Text5_Change() Dim dado As String Dim rsTemp As New ADODB.Recordset List1.Clear dado = Text5.Text With rsTemp .Open "Select * From alunos where nome LIKE '" & dado & "%' order by nome", cn, adOpenStatic, adLockReadOnly If Not .EOF Then List1.ToolTipText = "Clique em um dos nomes disponiveis para verificar dados completos." Else List1.ToolTipText = "Nenhum nome disponivel . " End If Do While Not .EOF List1.AddItem .Fields("nome").Value .MoveNext Loop End With End SubSubstitua o seu Text5_Change() por este acima e veja o resultado.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 dentro do List1 eu tenho o nome e o rg , como eu faço para desabilitar o clique no rg ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2005 Denunciar Share Postado Março 13, 2005 dentro do List1 eu tenho o nome e o rg , como eu faço para desabilitar o clique no rg ? Como assim? Uma list só guarda "itens", ou seja, cada linha daquela é um "item". Como você está adicionando o nome e o RG? No mesmo item (ambos na mesma linha)?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mestre fyoda Postado Março 13, 2005 Autor Denunciar Share Postado Março 13, 2005 No mesmo item (ambos na mesma linha)?Isso mesmo .E outra duvida , quando o usuario da backspace e apaga o inicio da letra digitada , ele mostra todos cadastrados , como faço para consertar isso ?já usei o .Clear e não funfou . Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 14, 2005 Denunciar Share Postado Março 14, 2005 No mesmo item (ambos na mesma linha)?Isso mesmo.Não tem jeito, oras. Foi o que eu disse acima, a listbox só guarda itens (linhas) e não "colunas"... Quando você clica em uma das linhas, você *não* está clicando no nome ou no RG e sim em uma linha (somente!).E outra duvida , quando o usuario da backspace e apaga o inicio da letra digitada , ele mostra todos cadastrados , como faço para consertar isso ?já usei o .Clear e não funfou .Sim, ele mostra porque a SQL, nesse caso, fica: "SELECT * FROM alunos WHERE nome LIKE '%' ORDER BY nome;", já que "dado" é vazio ("") ao juntar com "%" fica só o "%" mesmo. De fato, procurar por "%" vai retornar todos os nomes. Então, creio que por aí você já tenha uma idéia sobre o que deve ser feito.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mestre fyoda
Ta dando erro no form4
vou estar passando o codigo e vocês me ajudem por favor por favor .
http://ee.domaindlx.com/teste123/biblioteca.mdb
http://ee.domaindlx.com/teste123/Form1.frm
http://ee.domaindlx.com/teste123/Form2.frm
http://ee.domaindlx.com/teste123/Form3.frm
http://ee.domaindlx.com/teste123/Form4.frm
http://ee.domaindlx.com/teste123/Project1.vbp
Link para o comentário
Compartilhar em outros sites
17 respostass 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.