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

Consulta Em Dbgrid


kanguru_company

Pergunta

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

  • 0

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 String

localizar = 0

localizar = InputBox("Informe o Código do Cliente a localizar ! ", "Localizando por Código", 0)

If localizar = "" Then

Exit Sub

End If

On Error GoTo valor_errado

valor_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 If

Resume 0

End If

DtConCliente.Recordset.FindFirst "IDCLIENTE=" & CLng(localizar)

DtConCliente.Refresh

DtConCliente.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

Link para o comentário
Compartilhar em outros sites

  • 0

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 uso

dtg2.SelBookmarks.Add dtg2.Bookmark

eu como faço pra deselecionar???

se puder me ajudar ficarei grato!

té mais!

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...