Agora o programação para novo, excluir, modificar, salvar, próximo, anterior, último, primeiro.
Crie a seguinte interface:
Certo, não se esqueça de deixar a opção "readonly = true" da caixa de texto "codigo" para que não seja permitido alterar esse valor, pois ele será gerado via programação.
Botão "Novo"
PUBLIC SUB ToggleButton1_Click()
DIM registro AS Result
DIM ultimo AS Integer
cnx.ConectarBanco()
registro = cnx.conexao.Exec("select * from cadastro")
IF registro.Count = 0 THEN
TextBox1.Text = "1"
TextBox2.Enabled = TRUE
TextBox1.Enabled = TRUE
TextBox3.Enabled = TRUE
ELSE
registro.MoveLast
ultimo = registro!codigo
TextBox1.Text = ultimo + 1
TextBox2.Enabled = TRUE
TextBox1.Enabled = TRUE
TextBox3.Enabled = TRUE
ENDIF
reg = cnx.conexao.Create("cadastro")
ToggleButton2.Enabled = TRUE
ToggleButton1.Enabled = FALSE
ToggleButton5.Enabled = FALSE
ToggleButton6.Enabled = FALSE
ToggleButton7.Enabled = FALSE
ToggleButton8.Enabled = FALSE
ToggleButton3.Enabled = FALSE
Textbox2.Text = ""
Textbox3.Text = ""
END
O que isso faz?
É o seguinte, nesse primeiro botão ele abre a conexão para inserir um novo registro, a parte responsável por isso é:
reg = cnx.conexao.Create("cadastro")
Ele também mostra o primeiro registro.
Primeiro ele gera um novo código via programação como eu havia dito que explicaria, para ser mais específico, essa parte aqui é responsável por isso:
IF registro.Count = 0 THEN
TextBox1.Text = "1"
ELSE
registro.MoveLast
ultimo = registro!codigo
TextBox1.Text = ultimo + 1
ENDIF
Se "registro" estiver vazio, então o código é 1, senão mova registro para o último, pegue o código, some 1 ao valor e o próximo código será a o último atribuído 1. Simples hein... :p
Bom, o resto da programação desse botão é responsável por mostrar o primeiro item na tela e criar um novo registro:
reg = cnx.conexao.Create("cadastro")
Botão "Salvar"
PUBLIC SUB ToggleButton2_Click()
reg!codigo = Val(TextBox1.Text)
reg!nome = TextBox2.Text
reg!telefone = TextBox3.Text
reg.Update
cnx.conexao.Commit
ToggleButton1.Enabled = TRUE
TextBox1.Enabled = FALSE
TextBox2.Enabled = FALSE
TextBox3.Enabled = FALSE
ToggleButton2.Enabled = FALSE
ToggleButton5.Enabled = TRUE
ToggleButton6.Enabled = TRUE
ToggleButton7.Enabled = TRUE
ToggleButton8.Enabled = TRUE
ToggleButton3.Enabled = TRUE
END
O que isso faz?
A parte que realmente salva é essa:
reg!codigo = Val(TextBox1.Text)
reg!nome = TextBox2.Text
reg!telefone = TextBox3.Text
reg.Update
cnx.conexao.Commit
Nessa parte ele atribui o valor para o registro de acordo com a textbox que está o representando.
reg!codigo = Val(TextBox1.Text)
Isso aqui converte o valor texto da textbox1 para o tipo número para que possa ser guardado no banco, porque no banco o campo código é do tipo integer.
O resto dele ativa e desativa botões conforme a necessidade.
Botão "Editar"
PUBLIC SUB ToggleButton3_Click()
IF ToggleButton3.Text = "Editar" THEN
TextBox2.Enabled = TRUE
TextBox3.Enabled = TRUE
ToggleButton5.Enabled = FALSE
ToggleButton6.Enabled = FALSE
ToggleButton7.Enabled = FALSE
ToggleButton8.Enabled = FALSE
ToggleButton1.Enabled = FALSE
ToggleButton4.Enabled = FALSE
ToggleButton3.Text = "Atualizar"
ELSE
reg = cnx.conexao.Exec("update cadastro set nome ='" & Textbox2.Text & "', telefone='" & TextBox3.Text & "' where codigo =" & Val(TextBox1.text) & "")
ToggleButton3.Text = "Editar"
TextBox2.Enabled = FALSE
TextBox3.Enabled = FALSE
ToggleButton5.Enabled = TRUE
ToggleButton6.Enabled = TRUE
ToggleButton7.Enabled = TRUE
ToggleButton8.Enabled = TRUE
ToggleButton1.Enabled = TRUE
ToggleButton4.Enabled = TRUE
ENDIF
END
O que isso faz?
Nesse a única parte que importa mesmo é essa:
reg = cnx.conexao.Exec("update cadastro set nome ='" & Textbox2.Text & "', telefone='" & TextBox3.Text & "' where codigo =" & Val(TextBox1.text) & "")
Esse é um SQL utilizando o update do próprio MySQL para alterar. O resto disso só ativa e desativa os botões.
Botão "Excluir"
PUBLIC SUB ToggleButton4_Click()
cnx.conexao.Exec("delete from cadastro where codigo=" & Val(TextBox1.Text))
Form_Open()
END
Esse eu acredito que seja o mais simples de se entender, é um SQL que vai excluir o registro que está na tela, simples não!?
O Form_Open() é como se estivesse iniciando novamento o sistema, fiz isso para que ele jogue o primeiro registro para a tela.