Jump to content

Ultimo valor de uma BD


alfaiate
 Share

Recommended Posts

Boa tarde, eu estou a criar uma aplicação em que tenho que criar registos na BD, sendo que cada registo tem de ter um ID diferente do anterior.

Como sou iniciante em VB não sei como ler a BD e obter o ultimo valor da tabela no campo ID e de seguida incrementalo.

Para gravar na BD faço assim:

Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb")

Dim query2 As String = "INSERT INTO Chaves([sorteio], [iD], [N1], [N2], [N3], [N4], [N5], [E1], [E2]) VALUES (@ID, @Sorteio, @N1, @N2, @N3, @N4, @N5, @E1, @E2)"

command.Parameters.Add("@ID", OleDbType.VarChar).Value = XPTO

Agora o que eu queria que fizesse era que automaticamente cria-se um ID superior ao ultimo ID gravado.... (incrementar)

Desde já grato pela vossa disponiblidade,

alfaiate

Link to comment
Share on other sites

Estou a fazer assim:

Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb")

Dim query As String = "SELECT MAX(ID) FROM Chaves"

Dim command As New OleDbCommand(query, ConnectionString)

MsgBox(query)

E o resultado é sempre: uma mensage box com o texto SELECT MAX(ID) FROM Chaves

Link to comment
Share on other sites

Falta a leitura da consulta, antes do MsgBox:

Dim ConnectionString As New OleDbConnection( _
	    "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb")
Dim query As String = "SELECT MAX(ID) FROM Chaves"
Dim command As New OleDbCommand(query, ConnectionString)

ConnectionString.Open()
Dim datareader As OleDbDataReader = command.ExecuteReader()
datareader.Read()

MsgBox(datareader(0).toString())
Edited by FreiNando

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Não sei se é relevante, mas no Access (como em muitos outros sistemas de gestão de bases de dados) tens formas de criar campos que são auto-incrementados quando se inserem novos registos. De qualquer forma, desde que não obrigues o utilizador a verificar e inserir o ID à mão (coisa que já tenho visto ser feito em software de algumas empresas), está tudo bem.

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.