Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

botões de navegação

Recommended Posts

pessoal, olhem só no meu sistema existem três módulos:- variáveis (módulo)Global Conn As ADODB.Connection 'CNGlobal OP As ADODB.CommandGlobal RS As ADODB.Recordset 'RX- Conexão (módulo)Public Function FazConexaoBD()'Faz a Conexão com banco de dados AccessSet Conn = New ADODB.Connection With Conn .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Access Driver (*.mdb)}; Dbq=" & App.Path & "\SGA;Uid=Admin; Pwd=;" .Open '(Usuário) (Senha) (Caminho e Nome do banco de dados) End WithEnd Function- Estoque (módulo)nesse módulo tem funções de insert, update, delete e bla, bla, blanesse módulo tenho essa função:Function TrazRegistroEstoque()Dim sql As String sql = "select top 1 * from estoque" 'Verica se a sql traz registros 'MsgBox sql Set RS = Conn.Execute(sql) frmestoque.txtCodigoEstoque.Text = RS!CodEstoque frmestoque.txtLocalizacaoEstoque.Text = RS!LocalizacaoEstoque frmestoque.txtUnidadeMedida.Text = RS!Unidademedida frmestoque.txtQuantidade.Text = RS!Quantidade frmestoque.mskValor = RS!Valor frmestoque.mskValorTotal = RS!ValorTotal frmestoque.txtCodigoPeca.Text = RS!CodPeca frmestoque.txtNomePeca.Text = RS!NomePeca frmestoque.txtDescricao.Text = RS!Descricao frmestoque.txtObs.Text = RS!Obs frmestoque.chkAtivo.Value = RS!Situacao frmestoque.Image1.Picture = LoadPicture(RS!caminho)End Functiononde quando o form abrir vai aprecer o primeiro registro do banco de dados.No form eu tenho aqueles famosos botoezinhos primeiro, anterior, proximo e ultimo.o código q estou fazendo para o o btoão próximo é esse:If RS.EOF = True And RS.BOF = True ThenMsgBox "A Tabela está Vazia!", vbExclamation, "Aviso!"Exit SubEnd If On Error GoTo Proximo RS.MoveNext TrazRegistroEstoque Exit SubProximo: If Err.Number = 3021 Then MsgBox "Você já esta no Último Registro!", vbInformation, "Aviso!!" RS.MoveLast TrazRegistroEstoque Exit Sub End Ifse q não acontece nada, não vai para o próximo registro q tenho no banco, quando clico no botão nem erro dá.mesmo eu fazendo o mais simples q é rs.movenext, também fica na mesma.alguém, poderia me ajudar, po favor?valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem,

Primeiro o IF:

If RS.EOF = True And RS.BOF = True ThenMsgBox "A Tabela está Vazia!", vbExclamation, "Aviso!"Exit SubEnd If
Ali na condição você ñ pode colocar AND pois nunca o ponteiro da recordset vai estar no fim e no começo ao mesmo tempo ali seria um OR.

 

Continuando você da o movenext e depois chama a rotina (TrazRegistrosEstoque) mas repare que nessa rotina você executa uma consulta sql na RS o que acaba "anulando" o movenext anterior.

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

então como eu faria para q vá para o próximo registro?Porque na minha rotina faço aquela sql para trazer sempre o 1º registro da tabela, mesmo eu fazendo essa sql: select * from estoque da mesma, depois eu mostro os registros nos seus campos.só isso.agora como eu faço para que vá para o registro seguinte?valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, basta usar a propriedade MoveNext do RecordSet, agora seria melhor você executar o seu programa passo a passo, pois assim terá facilidadeds em solucionar o seu problema.Obs: Verifique a quantidade que está sendo retornada no RecordCount.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pega essa função:

Function TrazRegistroEstoque()Dim sql As Stringsql = "select top 1 * from estoque"'Verica se a sql traz registros'MsgBox sqlSet RS = Conn.Execute(sql)frmestoque.txtCodigoEstoque.Text = RS!CodEstoquefrmestoque.txtLocalizacaoEstoque.Text = RS!LocalizacaoEstoquefrmestoque.txtUnidadeMedida.Text = RS!Unidademedidafrmestoque.txtQuantidade.Text = RS!Quantidadefrmestoque.mskValor = RS!Valorfrmestoque.mskValorTotal = RS!ValorTotalfrmestoque.txtCodigoPeca.Text = RS!CodPecafrmestoque.txtNomePeca.Text = RS!NomePecafrmestoque.txtDescricao.Text = RS!Descricaofrmestoque.txtObs.Text = RS!Obsfrmestoque.chkAtivo.Value = RS!Situacaofrmestoque.Image1.Picture = LoadPicture(RS!caminho)End Function
e Divide em duas:

Function TrazRegistroEstoque()Dim sql As Stringsql = "select top 1 * from estoque"'Verica se a sql traz registros'MsgBox sqlSet RS = Conn.Execute(sql)carrega_caixasEnd FunctionPrivate Sub carrega_caixas()frmestoque.txtCodigoEstoque.Text = RS!CodEstoquefrmestoque.txtLocalizacaoEstoque.Text = RS!LocalizacaoEstoquefrmestoque.txtUnidadeMedida.Text = RS!Unidademedidafrmestoque.txtQuantidade.Text = RS!Quantidadefrmestoque.mskValor = RS!Valorfrmestoque.mskValorTotal = RS!ValorTotalfrmestoque.txtCodigoPeca.Text = RS!CodPecafrmestoque.txtNomePeca.Text = RS!NomePecafrmestoque.txtDescricao.Text = RS!Descricaofrmestoque.txtObs.Text = RS!Obsfrmestoque.chkAtivo.Value = RS!Situacaofrmestoque.Image1.Picture = LoadPicture(RS!caminho)End FunctionEnd Sub
Daí você substitui TrazRegistroEstoque por carrega_caixas:

If RS.EOF = True And RS.BOF = True ThenMsgBox "A Tabela está Vazia!", vbExclamation, "Aviso!"Exit SubEnd IfOn Error GoTo ProximoRS.MoveNextcarrega_caixasExit SubProximo:If Err.Number = 3021 ThenMsgBox "Você já esta no Último Registro!", vbInformation, "Aviso!!"RS.MoveLastcarrega_caixasExit SubEnd If

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, eu fiz o q você falou e me deu o seguinte erro:run timer error = 91object variable or with block variable not set?q erro é esse? pq dá erro? o meu banco é access 2000.pode ser? minha conexão está assim:Public Function FazConexaoBD()'Faz a Conexão com banco de dados AccessSet Conn = New ADODB.Connection With Conn .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Access Driver (*.mdb)}; Dbq=" & App.Path & "\BDSGA;Uid=Admin; Pwd=;" .CursorLocation = adUseClient .Open '(Usuário) (Senha) (Caminho e Nome do banco de dados) End WithEnd Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.