Ir para conteúdo

POWERED BY:

Arquivado

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

Anjos1981

[Resolvido] Registro de Banco de Dados

Recommended Posts

Olá pessoal!

 

Estou desenvolvendo um sistema de correção de nomes.

 

Ele faz a conexão com o Banco de Dados ACCESS, escolhe o campo e percorre todos os registros e faz a correção.

 

Porém trtabalho com bancos com muitos registros e de vez em quando o banco acaba estourando e chaga a 2Gb.

 

Aí veio uma idéia de antes de executar a correção dos nomes, o usuário poderia digitar o número "X" para começar e ir até o numero "X" do registro terminar a correção sem ter o risco do banco "estourar".

 

O comando SQL para executar está funcionado, porém o sistema sempre começa a excução do primeiro registro da tabela do Banco e vai até o ultimo registro.

 

Existe algum meio pra resolver.

 

Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você pode utilizar é:

 

recordset.move(x) para indicar de onde que iniciar. Isso funciona assim, ele vai abrir a partir do primeiro, se vocÊ colocar rs.move(103), ele vai pular para 103 casas adiante.

 

Agora como você pode indicar quando parar, não sei te ajudar não, acho que isso será mais fácil fazer utilizando um pouco de lógica.

 

Tenta e diga se precisar de mais ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais a título de curiosidade.

 

Você tem uma tabela que armazena todos as possíveis palavras passíveis de correção?

 

Paulo Mendes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais a título de curiosidade.

 

Você tem uma tabela que armazena todos as possíveis palavras passíveis de correção?

 

Paulo Mendes.

 

Paulo Mendes

 

A tabela tenho sim, eu vou postar o codigo da form aki.

 

 

 

Private Sub cmdok_Click()

Dim regex As New RegExp

Dim rs As New ADODB.Recordset

Dim i As Integer

 

If txtmin = "" Or txtmax = "" Then

MsgBox "Favor digitar um valor!!!", vbExclamation + vbOKOnly

Exit Sub

End If

 

nomes = main.txtcampo

 

rs.Open "SELECT " & main.txtcampo & " FROM " & main.Combo1.Text & " WHERE ID BETWEEN " & txtmin & " AND " & txtmax, frmmain.conex

 

 

 

For i = 0 To rs.Fields.Count - 1

If IsNull(rs.Fields(i)) Then

ListView1.ListItems.Add , , nomes

End If

 

 

Next i

 

If Not rs.EOF Then

rs.MoveNext

End If

 

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

 

CODE

rs.move(digito_do_usuario)

 

do until rs.eof

If IsNull(rs.Fields(i)) Then

ListView1.ListItems.Add , , nomes

End If

loop

 

Deve atender ao que pediu, se eu entendi bem o que necessita.

 

Boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

 

CODE

rs.move(digito_do_usuario)

 

do until rs.eof

If IsNull(rs.Fields(i)) Then

ListView1.ListItems.Add , , nomes

End If

loop

Deve atender ao que pediu, se eu entendi bem o que necessita.

 

Boa sorte.

----------------

 

Então Cláudio a rotina eu coloquei, mas ele dá um loop infinito ele nem passa pela ListView

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.