BOTAO DE NAVEGACAO

AZORSCA 27/11/2012 11:14:38
#414838
Bom dia para todos.

Venho mais uma vez até vocês para pedir que compartilhem seus conhecimentos comigo e me ajude a desenvolver o seguinte:


Tenho um formulá de produtos e neste formulário é exibido os dados como:

Código
Nome
Preço

Criei no formulário Quatro Command Buttons
<< < > >> respectivamente, afim d e realizar navegação entre os registros.

Alguém poderia me ajudar a fazer?


Minha base de dados é Sql Server

Tabela Equipamentos

Campos? Codigo, Nome, preço e qtd.

Obrigado.


Azor Freire
KERPLUNK 27/11/2012 11:22:10
#414840
Você sabe usar ADO?
AZORSCA 27/11/2012 11:24:16
#414841
Sim utilizo a ADO.

Esqueci de mencionar.
KERPLUNK 27/11/2012 11:44:04
#414842
Então, é simples. Faça a conexão, faça a seleção, deixe a seleção(recordset) como variável pública no form, e faça o método de avançar/retroceder em cada botão correspondente.
AZORSCA 27/11/2012 11:50:38
#414845
Utilizando os métodos MoveFirst/Last/previous/ next.


Poderia por favor me dar um exemplo?
KERPLUNK 27/11/2012 12:16:32
#414846

rs.MoveFirst
rs.MoveLast
rs.MoveNext
rs.MovePrevious
AZORSCA 27/11/2012 15:54:08
#414868
para mover ao primeiro e ao último eu consegui na boa. Porém para o anterior e para o propximo eu não consigo.

olha como eu fiz para mover para o primeiro.

Set oConCadPro = New ADODB.Connection
oConCadPro.ConnectionString = Init.vStrConSQLServer
oConCadPro.Open

Set oRecCadPro = New ADODB.Recordset
vStrSql = [Ô] Select * From ger003 where codigo=[ô][Ô] & txtCodigo.Text & [Ô][ô] [Ô]
oRecCadPro.Open vStrSql, oConCadPro, adOpenDynamic, adLockReadOnly

oRecCadPro.MovePrevious

txtCodigo.Text = oRecCadPro.Fields([Ô]codigo[Ô])
txtNomeEquip.Text = oRecCadPro.Fields([Ô]nome[Ô])
cboFornecedores.Text = oRecCadPro.Fields([Ô]fornecedor[Ô]) [ô] Aqui na base registra apenas o codigo uma função deverá ser feita para trazer nome
Sincroniza_Fornecedores [ô] Faz a sincronia entre as bases Access e Sql Server para exibir o nome correto
cboSetor.Text = oRecCadPro.Fields([Ô]setor[Ô])
txtCodBarras = oRecCadPro.Fields([Ô]codbarra[Ô])
txtPCompra.Text = Format(oRecCadPro.Fields([Ô]precocomp[Ô]).value, [Ô]Currency[Ô]) [ô] Formatação necessária para exibir o valor de forma correta.
txtPVenda.Text = Format(oRecCadPro.Fields([Ô]precovend[Ô]).value, [Ô]Currency[Ô]) [ô] Formatação necessária para exibir o valor de forma correta.
Combo1.Text = oRecCadPro.Fields([Ô]embalagem[Ô])
txtUnEmbalagem.Text = oRecCadPro.Fields([Ô]unidades[Ô])
txtQtdMin.Text = oRecCadPro.Fields([Ô]qtdminima[Ô])
If Not IsNull(oRecCadPro.Fields([Ô]grupo[Ô])) Then [ô] Verifica se o campo não está nulo para evitar erros
txtGrupo.Text = oRecCadPro.Fields([Ô]grupo[Ô])
End If
txtLocalizacao.Text = oRecCadPro.Fields([Ô]sbgrupo[Ô])
txtSugestao.Text = oRecCadPro.Fields([Ô]sugestao[Ô])
txtDescricao.Text = oRecCadPro.Fields([Ô]nome2[Ô])
txtPDV.Text = oRecCadPro.Fields([Ô]Nome1[Ô])
If Not IsNull(oRecCadPro.Fields([Ô]grupo[Ô])) Then
txtGrupo.Text = oRecCadPro.Fields([Ô]grupo[Ô])
End If
If oRecCadPro.Fields([Ô]ativo[Ô]) = True Then
Check1.value = 1
End If
[ô] Para carregar a imagem do Equipamento cadastrado caso existe imagem
If Not IsNull(oRecCadPro.Fields([Ô]foto[Ô])) Then
If oRecCadPro.Fields([Ô]foto[Ô]) <> [Ô][Ô] Then
If Existe(atual & oRecCadPro.Fields([Ô]foto[Ô])) Then
imgEquipamento.Picture = LoadPicture(atual & oRecCadPro.Fields([Ô]foto[Ô]))
End If
Else
imgEquipamento.Picture = LoadPicture([Ô][Ô])
End If
Else
imgEquipamento.Picture = LoadPicture([Ô][Ô])
End If

Call fechaObjetoConnection(oConCadPro)
Call fechaObjetoRecordset(oRecCadPro)
KERPLUNK 27/11/2012 16:30:20
#414873
Vamos de novo:
1 - Faça com que seu recordset seja uma variável disponível em todo o form
2 - Faça uma rotina que carregue os dados do registro atual
3 - Em cada um dos botões de navegação, execute o método equivalente à função do mesmo(avança um, retrocede um, volta para o primeiro...)
4 - A rotina de [Ô]preencher[Ô] o recordset faça na inicialização do form (Form_Load)
AZORSCA 27/11/2012 17:00:27
#414880
kerplunk confundiu mais ainda.

Mesmo assim valew pela ajuda.
KERPLUNK 27/11/2012 17:04:34
#414883
Mais simples que isso só se eu fazer o código pra você, mas meu objetivo não é este, quero que você aprenda. O que você não entendeu?
MARCELO.TREZE 27/11/2012 17:18:44
#414887
Olha colega sem querer me meter, eu aboli este esquema de teclas de navegação a algum tempo, isso porque eu fico imaginado se caso existirem 20.000 (vinte mil) registro no banco e eu queira encontrar apenas seria uma briga danada não acha? eu atualmente procedo da seguinte maneira coloco um textbox e abaixo do mesmo um grid, quando digito uma letra no textbox o grid vai exibindo os registros que começam com a mesma, e assim vou filtrando o que diminui muito minha consulta, a forma que você pretende usar acima era muito usada com DAO, com ADO também funciona porém você teria de abrir o banco de forma diferente, por exemplo.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms675542(v=vs.85).aspx

o link acima mostra a maneira a se proceder.

Tópico encerrado , respostas não são mais permitidas