kanguru_company Postado Novembro 8, 2005 Denunciar Share Postado Novembro 8, 2005 Olá pessoal, estou precisando de ajuda....Preciso mover o cursor do BDGrid para o registro localizado através de uma consulta em um textbox.Inicialmente tentei fazer por SQL, a consulta ficou perfeita mas eu não consigo mover o cursor do DBGrid para o registro localizado.Depois, tentei fazer através do componente data e também não consegui...por favor preciso muito de ajuda...quem puder me ajudar....Desde já agradeço...abaixo os códigos das duas tentativas.....' Essa é com SQLPublic Function Consultar(ByVal strMPN As String, strPN As String, strSN As String) As VariantDim linha As IntegerSet rs = CreateObject("ADODB.Recordset")With rs .Open "SELECT * FROM componentes WHERE MPN='" & strMPN & "' or PN='" & strPN & "' or SN='" & strSN & "'", cn, adOpenKeyset, adLockOptimistic If .RecordCount = 0 Then MsgBox "Nenhum componente localizado", vbExclamation, "Consulta" Else frmComp.txtNome2.Text = IIf(IsNull(!nomeclatura), Empty, !nomeclatura) frmComp.txtMPN2.Text = IIf(IsNull(!MPN), Empty, !MPN) frmComp.txtPN2.Text = IIf(IsNull(!PN), Empty, !PN) frmComp.txtSN2.Text = IIf(IsNull(!SN), Empty, !SN) frmComp.dbg_comp2.Refresh linha = CInt(!cod) - 1 frmComp.dbg_comp2.Scroll 0, linha frmComp.dbg_comp2.Row = linha End If .CloseEnd With' Essa é com componente data'Aqui aparece um erro, dizendo que esse método não é permitidoIf Right(txtMPN2, 1) = Chr(39) ThentxtMPN2 = Right(txtMPN2, Len(txtMPN2) - 1)End IfDim vntPosicao As VariantWith dt_comp.Recordset.OpenRecordset vntPosicao = .Recordset.Bookmark 'Grava a posicao do registro atual .Recordset.OpenRecordset .Recordset.MoveFirst .Recordset.Find "MPN like '" & txtMPN2.Text & "*'" If .Recordset.EOF Then 'se não encontrou "ED" .Recordset.Bookmark = vntPosicao .Recordset.MoveNext 'vai para o proximo "EE..." End IfEnd With------K@guru Comp@ny Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 guf Postado Novembro 8, 2005 Denunciar Share Postado Novembro 8, 2005 Cara pelo q eu entendi no vb6 é assim fiz um aqui rapidao com Recordset mas da para aproveitar e colocar no seu tb da para fazer via SQL é entender um pouco da minha logica ai qualquer coisa me manda todo o codigo q vejo melhor o q você esta tentando indicar.este codio q fiz aqui ele move o cursor para o registro indicado selecionando alinha em cor azul. Dim localizar As Stringlocalizar = 0localizar = InputBox("Informe o Código do Cliente a localizar ! ", "Localizando por Código", 0) If localizar = "" ThenExit Sub End If On Error GoTo valor_erradovalor_errado: If Err = 13 Then MsgBox "Dado invalido, no campo só pode conter número", vbExclamation + vbSystemModal, "Aviso" localizar = InputBox("Informe o codigo a localizar ! ", "Localizando por Código", 0) If localizar = "" Then Exit Sub End IfResume 0 End If DtConCliente.Recordset.FindFirst "IDCLIENTE=" & CLng(localizar)DtConCliente.RefreshDtConCliente.Recordset.FindFirst "IDCLIENTE=" & CLng(localizar) If DtConCliente.Recordset.NoMatch Then MsgBox " Registro não localizado ", vbExclamation, "O Cliente informado não contém no registro" Else DBGrid1.SelBookmarks.Add DBGrid1.Bookmark 'SELECIONA UMA LINHA NA PROBRIEDADE A SER LOCALIZADA End If Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kanguru_company Postado Novembro 11, 2005 Autor Denunciar Share Postado Novembro 11, 2005 Guf,Valeu cara seu codigo me ajudou muito mesmo.Afinal era uma coisa simples q eu não conseguia ver né?!Só que agora eu gostaria de aproveitar para tirar uma outra dúvida...quando eu Seleciono uma linha do DbGrid ela fica selecionada....ou seja ....neste mesmo form eu gostaria q em outro evento ela fosse deselecionada....deu pra entender?quando eu seleciono eu usodtg2.SelBookmarks.Add dtg2.Bookmarkeu como faço pra deselecionar???se puder me ajudar ficarei grato!té mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
kanguru_company
Olá pessoal, estou precisando de ajuda....
Preciso mover o cursor do BDGrid para o registro localizado através de uma consulta em um textbox.
Inicialmente tentei fazer por SQL, a consulta ficou perfeita mas eu não consigo mover o cursor do DBGrid para o registro localizado.
Depois, tentei fazer através do componente data e também não consegui...por favor preciso muito de ajuda...
quem puder me ajudar....
Desde já agradeço...
abaixo os códigos das duas tentativas.....
' Essa é com SQL
Public Function Consultar(ByVal strMPN As String, strPN As String, strSN As String) As Variant
Dim linha As Integer
Set rs = CreateObject("ADODB.Recordset")
With rs
.Open "SELECT * FROM componentes WHERE MPN='" & strMPN & "' or PN='" & strPN & "' or SN='" & strSN & "'", cn, adOpenKeyset, adLockOptimistic
If .RecordCount = 0 Then
MsgBox "Nenhum componente localizado", vbExclamation, "Consulta"
Else
frmComp.txtNome2.Text = IIf(IsNull(!nomeclatura), Empty, !nomeclatura)
frmComp.txtMPN2.Text = IIf(IsNull(!MPN), Empty, !MPN)
frmComp.txtPN2.Text = IIf(IsNull(!PN), Empty, !PN)
frmComp.txtSN2.Text = IIf(IsNull(!SN), Empty, !SN)
frmComp.dbg_comp2.Refresh
linha = CInt(!cod) - 1
frmComp.dbg_comp2.Scroll 0, linha
frmComp.dbg_comp2.Row = linha
End If
.Close
End With
' Essa é com componente data
'Aqui aparece um erro, dizendo que esse método não é permitido
If Right(txtMPN2, 1) = Chr(39) Then
txtMPN2 = Right(txtMPN2, Len(txtMPN2) - 1)
End If
Dim vntPosicao As Variant
With dt_comp
.Recordset.OpenRecordset
vntPosicao = .Recordset.Bookmark
'Grava a posicao do registro atual
.Recordset.OpenRecordset
.Recordset.MoveFirst
.Recordset.Find "MPN like '" & txtMPN2.Text & "*'"
If .Recordset.EOF Then
'se não encontrou "ED"
.Recordset.Bookmark = vntPosicao
.Recordset.MoveNext
'vai para o proximo "EE..."
End If
End With
------K@guru Comp@ny
Link para o comentário
Compartilhar em outros sites
2 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.