Botão "Primeiro"
PUBLIC SUB ToggleButton5_Click()
cnx.ConectarBanco
reg = cnx.conexao.Exec("select * from cadastro")
reg.MoveFirst()
WHILE reg!codigo <> Val(TextBox1.Text)
reg.MoveNext
WEND
reg.MoveFirst()
TextBox1.Text = reg!codigo
TextBox2.Text = reg!nome
TextBox3.Text = reg!telefone
CATCH
Message.Info("Impossível mover registro")
END
O que isso faz?
Olha só, isso é uma autêntica adaptação técnica de emergência que realmente funciona. Conecta ao banco, busca todos os registros da tabela "cadastro", move para o primeiro registro.
Enquanto o código do atual registro for diferente do valor da textobox1, ande até encontrá-lo.
Fazendo isso movendo o registro para o registro que está na tela, aí o resto é simples: reg.MoveFirst() para mover para o primeiro e pronto. Nesse botão compliquei um pouco porque tentei deixar a programação dos botões o mais parecido possível para explicar a única diferença necessária de ter entre eles.
Botão "Anterior"
PUBLIC SUB ToggleButton6_Click()
cnx.ConectarBanco
reg = cnx.conexao.Exec("select * from cadastro")
reg.MoveFirst()
WHILE reg!codigo <> Val(TextBox1.Text)
reg.MoveNext
WEND
reg.MovePrevious()
TextBox1.Text = reg!codigo
TextBox2.Text = reg!nome
TextBox3.Text = reg!telefone
CATCH
Message.Info("Impossível mover registro")
END
O que isso faz?
A mesma coisa que o anterior, a diferença é:
reg.MovePrevious()
Quando encontra o atual registro ele move para o anterior e mostra na tela.
Botão "Próximo"
PUBLIC SUB ToggleButton7_Click()
cnx.ConectarBanco
reg = cnx.conexao.Exec("select * from cadastro")
reg.MoveFirst()
WHILE reg!codigo <> Val(TextBox1.Text)
reg.MoveNext
WEND
reg.MoveNext()
TextBox1.Text = reg!codigo
TextBox2.Text = reg!nome
TextBox3.Text = reg!telefone
CATCH
Message.Info("Impossível mover registro")
END
O que isso faz?
Assim como no outro ele faz a mesma coisa, só que move o registro para o próximo: reg.MoveNext().
Botão "Último"
PUBLIC SUB ToggleButton8_Click()
cnx.ConectarBanco
reg = cnx.conexao.Exec("select * from cadastro")
reg.MoveFirst()
WHILE reg!codigo <> Val(TextBox1.Text)
reg.MoveNext
WEND
reg.MoveLast()
TextBox1.Text = reg!codigo
TextBox2.Text = reg!nome
TextBox3.Text = reg!telefone
CATCH
Message.Info("Impossível mover registro")
END
O que isso faz?
Esse é o último do tipo quase idêntico. Esse move o registro para o último: reg.MoveLast().
Observe que o diferença deles é uma linha, mas o para mover para o primeiro e para o último poderia ser mais simples para, assim, ficar mais claro a facilidade de fazê-los.
A única variável declarada fora das procedures foi:
PUBLIC reg AS Result