COMO FAZER UMA BUSCA EM UM DATAGRID POR NOME/CNPJ?

 Tópico anterior Próximo tópico Novo tópico

COMO FAZER UMA BUSCA EM UM DATAGRID POR NOME/CNPJ?

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#275134 - 30/07/2008 12:51:18

USUARIO.EXCLUIDOS

Cadast. em:


OL,

   GOSTARIA DE SABER COMO SE FAZ UMA BUSCA EM UM DATAGRID POR NOME  E CNPJ? O BANCO MYSQL E O DATA GRID QUANDO SELECIONADO O CLIENTE ELE ENVIA OD DADOS PARA UMS TEXTBOXS.




#275149 - 30/07/2008 13:54:41

FGSANTOS
BELO HORIZONTE
Cadast. em:Março/2004


Vc quer encontrar no DataGrid um nome, certo???

Certamente seu datagrid est vinculado a um rs, deste jeito:

set datagrid.recordsource = rs

Entao vc pode usar o Find do rs que o gride tambem se posiciona:

rs.find  campo =   & txtcriterio.Text, , adSearchForward, 1


Flavio Santos

#275207 - 30/07/2008 17:32:04

USUARIO.EXCLUIDOS

Cadast. em:


Option Explicit
Dim conn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim Rx As Long
Dim AddNewStatus As Boolean
Dim xCount As Integer
Dim db_name, db_server, db_port, db_user, db_pass, constr As String
Dim cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Private Sub cbomarca_Click()
If cbomarca =  BEMATECH  Then
carregaBematech
End If
End Sub


Private Sub Command1_Click()

Set rs1 = New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    rs1.CursorType = adOpenStatic
    rs1.LockType = adLockReadOnly
    rs1.Open  SELECT cliente FROM sb , conn
    [´]Set DataGrid1.DataSource = rs1
      rs1.Find  cliente =   & txtcriterio.Text, , adSearchForward, 1     [´][´][´][´][´][´][´][´][´][´][´][´][´][´][´][´]

[´][´][´][´][´][´][´][´][´][´][´]
[´]Rs.Close
    [´]Set Rs = Nothing

End Sub


Private Sub DataGrid1_Click()
[´]Text1 = DataGrid1.Columns.Item(0)
txtcliente = DataGrid1.Columns.Item(1)
txtiecliente = DataGrid1.Columns.Item(2)
cbomarca = DataGrid1.Columns.Item(3)
cbomodelo = DataGrid1.Columns.Item(4)
txtversao = DataGrid1.Columns.Item(5)
txtchecksum = DataGrid1.Columns.Item(7)
txtns = DataGrid1.Columns.Item(6)
txtlacres = DataGrid1.Columns.Item(8)
txtmd5 = DataGrid1.Columns.Item(10)
txtUsuario = DataGrid1.Columns.Item(9)
End Sub


Private Sub Form_Load()
Width =  200
Height =  450
Skin1.LoadSkin App.Path &  SkinsAzulCinza.Skn
Skin1.ApplySkin Me.Hwnd
Skin1.ApplySkinByName Hwnd,  frmPrincipal
    
    On Error GoTo DBerror
    db_name =  nobre1
    db_server =  localhost
    db_port =  3306     [´]default port is 3306
    db_user =  root
    db_pass =  001503
    [´]ConnServer [´] Open with ODBC in Control Panel
    OpenServer [´] Open without ODBC in Control Panel
    Rx = 0
    ShowData
    ShowGrid
    Exit Sub
    
    DataGrid1.MarqueeStyle = dbgHighlightRowRaiseCell
    
    
    
DBerror:
    ShowData
    ShowGrid
    
  
End Sub


Private Sub ConnServer()
  [´]connect to MySQL server using MySQL ODBC 3.51 Driver
  Set conn = New ADODB.Connection
  conn.ConnectionString =  DRIVER={MySQL ODBC 3.51 Driver};  _
                        &  SERVER=localhost;  _
                        &   DATABASE=nobre1;  _
                        &  UID=root;PWD=001503; OPTION=3
conn.Open
End Sub


Private Sub OpenServer() [´]Connect MySQL Server Without ODBC setup
    [´]BDados.Open ( DRIVER={MySQL ODBC 3.51 Driver}; SERVER=  & IP &  ;PORT=  & PORTA &  ;DATABASE=piloto; UID=  & LoginBanco &  ; pwd=  & SenhaBanco &  ;option=3 )
    [´]constr =  Provider=MSDASQL.1;Password=;Persist Security Info=True;User ID=;Extended Properties=  & Chr$(34) &  DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=  & db_name &  ;SERVER=  & db_server &  ;UID=  & db_user &  ;PASSWORD=  & db_pass &  ;PORT=  & db_port &  ;OPTION=16387;STMT=;  & Chr$(34)
     constr = ( DRIVER={MySQL ODBC 3.51 Driver}; SERVER=  &  localhost  &  ;PORT=  &  3306  &  ;DATABASE=nobre1; UID=  &  root  &  ; pwd=  &  001503  &  ;option=3 )
    Set conn = New ADODB.Connection
    conn.Open constr
    [´][´][´][´][´][´][´][´][´][´]
    carregamarca [´] CARREGA COMBO DAS MARCAS
End Sub

Private Sub ShowData()
    Dim Rs As ADODB.Recordset
    Set Rs = New ADODB.Recordset
    Rs.CursorLocation = adUseClient
    Rs.CursorType = adOpenStatic
    Rs.LockType = adLockReadOnly
    Rs.Open  SELECT cdigo, cliente, iecliente, marca, modelo, versao, ns, checksum, lacres, usuario, md5 FROM sb , conn
        If Rs.EOF = True Then
            Rs.Close
            Set Rs = Nothing
            Exit Sub
        End If
    xCount = Rs.RecordCount
        If Rx > Rs.RecordCount - 1 Then
            Rx = 0
        End If
        If Rx < 0 Then
            Rx = Rs.RecordCount - 1
        End If
    Rs.Move Rx
    Set DataGrid1.DataSource = Rs
    txtcliente.Text = Rs!cliente
    txtiecliente.Text = Rs!iecliente
    cbomarca.Text = Rs!marca
    [´]Text3.Text = Format(rs!ProductPrice,  ###,###,###,##0.00 )
    Combo1.AddItem Rs!marca
    [´][´][´][´][´][´][´][´][´][´][´][´][´][´][´][´]
  
[´][´][´][´][´][´][´][´][´][´][´]
Rs.Close
    Set Rs = Nothing
End Sub


Private Sub ShowGrid()
    Set rs1 = New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    rs1.CursorType = adOpenStatic
    rs1.LockType = adLockReadOnly
    rs1.Open  SELECT cdigo, cliente, iecliente, marca, modelo, versao, ns, checksum, lacres, usuario, md5 FROM sb , conn
    Set DataGrid1.DataSource = rs1
    
End Sub

Private Sub carregamarca()
   Dim objRS As New ADODB.Recordset

    Set objRS = conn.Execute( SELECT marca FROM marca ) [´] FICOU SELECIONADO objConexao

    cbomarca.Clear
    While Not objRS.EOF
        cbomarca.AddItem objRS!marca
        [´]cbomarca.ItemData(cbomarca.NewIndex) = objRS!sb
        objRS.MoveNext
    Wend
  
End Sub

Private Sub carregaBematech()
   Dim objRS As New ADODB.Recordset

    Set objRS = conn.Execute( SELECT bematech FROM bematech ) [´] FICOU SELECIONADO objConexao

    cbomodelo.Clear
    While Not objRS.EOF
        cbomodelo.AddItem objRS!bematech
        [´]cbomarca.ItemData(cbomarca.NewIndex) = objRS!sb
        objRS.MoveNext
    Wend
  
End Sub


ESTA DANDO ERRO, TEM COMO VC ME AJUDAR A DESCOBRIR ONDE ESTA O ERRO?
Command1_Click, ERRO RUN TIME [´]3001[´]





#275213 - 30/07/2008 18:30:12

FGSANTOS
BELO HORIZONTE
Cadast. em:Março/2004


Em que linha d erro???


Flavio Santos

#275251 - 30/07/2008 21:54:04

USUARIO.EXCLUIDOS

Cadast. em:


Flavio, Uso este cdigo as funes showgrid e showdata para enviar os dados da tabela para o datagrid, invez de fazer busca no datagrid tem como zera-lo e reenviar os dados ja com a busca e:

DataGrid1.ClearFields [´] para zerar e abaixo o script para enviar os cliente ja com a busca!

tem como fazer isso?




#275282 - 31/07/2008 09:16:06

USUARIO.EXCLUIDOS

Cadast. em:


ol consegui fazer a busca com outro cdigo mas nao sei como enviar as informaes para o datagrid1, segue o script

Private Function CodeSearch(xSearch As String) As Boolean
    Dim Rs As ADODB.Recordset
    Dim sql As String
    Set Rs = New ADODB.Recordset
    Rs.CursorLocation = adUseServer
    sql =  select * from sb where cliente LIKE [´]  & xSearch &  %[´]
    Rs.Open sql, conn, adOpenStatic, adLockReadOnly, adCmdText
    
    [´]Rs.Find  ProductID LIKE [´]  & xSearch &  *[´]
    
    If Rs.EOF = True Then
        Rs.Close
        Set Rs = Nothing
        Exit Function
    End If
    If IsNull(Rs!cliente) Then
        txtcliente.Text =  
        txtiecliente.Text =  
        cbomarca =  
        CodeSearch = False
    Else
        txtcliente.Text = Rs!cliente
        txtiecliente.Text = Rs!End
        cbomarca = Rs!ie
         [´]Text3.Text = Format(rs!ProductPrice,  ###,###,###,##0.00 )
        CodeSearch = True
        
    End If
    Rs.Close
    Set Rs = Nothing
End Function


Private Function NameSearch(xSearch As String) As Boolean
    Dim Rs As ADODB.Recordset
    Dim sql As String
    Set Rs = New ADODB.Recordset
    Rs.CursorLocation = adUseServer
    [´]sql =  select * from Stock
    sql =  select * from sb where cliente LIKE [´]  & xSearch &  %[´]
    Rs.Open sql, conn, adOpenStatic, adLockReadOnly, adCmdText
    [´]Rs.Find  ProductName LIKE [´]  & xSearch &  *[´]
  
    If Rs.EOF = True Then
        Rs.Close
        Set Rs = Nothing
        Exit Function
    End If
  
    If IsNull(Rs!cliente) Then
        txtcliente.Text =  
        txtiecliente.Text =  
        cbomarca =  
        NameSearch = False
    Else
        txtcliente.Text = Rs!cliente
        txtiecliente.Text = Rs!End
        cbomarca = Rs!ie
         [´]Text3.Text = Format(rs!ProductPrice,  ###,###,###,##0.00 )
        NameSearch = True
        
    End If
    Rs.Close
    Set Rs = Nothing
End Function


Private Sub txtcriterio_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        If CodeSearch(txtcriterio) = False Then
            NameSearch txtcriterio
        End If
        
    End If
End Sub






#275406 - 31/07/2008 15:48:52

FLAVIOGUILHERME
SAO PAULO
Cadast. em:Abril/2004


Amigo tenta assim:

Private Sub txtcriterio_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        If CodeSearch(txtcriterio) = False Then
            NameSearch txtcriterio
            Set DataGrid1.DataSource = Rs
            DataGrid1.Refresh
        End If
    End If
End Sub



Lembra-te do teu Criador nos dias da tua mocidade, antes que venham os maus dias, e cheguem os anos dos quais dirs: No tenho neles prazer; (Ecles. 12:1)

Guilherme


#275529 - 01/08/2008 13:10:20

USUARIO.EXCLUIDOS

Cadast. em:


NAO DEU CERTO, NEM APRESENTA ERRO. SIMPLESMENTE NAO ESTA ENVIANDO OS DADOS PARA O DATAGRID1,
NESSE C“DIGO NAO ERA PARA TER UM COMANDO PARA LIMPAR O DATAGRID1?






#276328 - 07/08/2008 20:07:46

FLAVIOGUILHERME
SAO PAULO
Cadast. em:Abril/2004


No precisa limpar o datagrid s conectar ele a outra consulta.
Tenta assim:

Private Sub txtcriterio_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
            Dim Rs As ADODB.Recordset
            Dim sql As String
            Set Rs = New ADODB.Recordset
            sql =  select * from sb where cliente LIKE [´]  & txtcriterio.txt &  %[´]
            Rs.Open sql, conn, adOpenStatic, adLockReadOnly, adCmdText
            Set DataGrid1.DataSource = Rs
            DataGrid1.Refresh
    End If
End Sub



Lembra-te do teu Criador nos dias da tua mocidade, antes que venham os maus dias, e cheguem os anos dos quais dirs: No tenho neles prazer; (Ecles. 12:1)

Guilherme


#276382 - 08/08/2008 11:34:43

USUARIO.EXCLUIDOS

Cadast. em:


DEU ERRO EM:

Set DataGrid1.DataSource = Rs

RUM-TIME  7004
THE ROWSET IS NOT BOOKMARKABLE.






Resposta escolhida #276463 - 08/08/2008 20:39:24

USUARIO.EXCLUIDOS

Cadast. em:


d uma olhada nesta dica:

http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=7608




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WEBMASTER em 18/08/2009 10:03:45