• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

scorch

BD Access em VB.NET 2008 EXPRESS

16 mensagens neste tópico

Boas, se alguém aqui no fórum souber e me puder explicar como trabalhar com BDs do Access com o VB.NET 2008 EXPRESS, agradecia. Ou então que coloque o link de algum tutorial. Já utilizei o método tradicional (Google Search) e nada de jeito para o VB.NET 2008 EXPRESS.

Obrigado desde já. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Using connection As New OleDbConnection(Gestao_Jogadores.My.Settings.ligacaobd)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(lm, connection)

EDIT: Não percebi muito bem o lm, é o nome do ficheiro Access? ;)

Como é que eu defino o ficheiro ACCESS, já percebi que o lm é a "query".

Tenho de importa-lo? :D Se sim, como?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

naquele sítio parece-me ser a instrução de SQL

Yep, está um pouco mais acima ...

Dim lm As String = "UPDATE Perfil_Jogadores SET Nome_jogador=?,Data_nasc=?,Cidade_natal=?,Pais=?,Posicao=?,Ordenado_semanal=?,Estado=? where [iD_Jogador]=?"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se eu quiser fazer uma espécie de programa tipo portable, à alguma maneira de incluir a BD como no PHP, através do nível actual. Por exemplo, tenho o ficheiro executável numa pasta e a BD Access na mesma, em vez de fazer "C:\", fazer "./bd.accdb"?

E no exemplo, tem SQLEXPRESS, troco por ACCESS? ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê este exemplo que preenche uma combobox

http://vbtuga.blogspot.com/2008/10/vbnet-utilizando-o-controlo-combobox.html

Se eu quiser fazer uma espécie de programa tipo portable, à alguma maneira de incluir a BD como no PHP, através do nível actual. Por exemplo, tenho o ficheiro executável numa pasta e a BD Access na mesma, em vez de fazer "C:\", fazer "./bd.accdb"?

Podes fazer Application.StartupPath & "\dados.mdb"

Agora tens de alterar a connection string, uma vez que estás a usar Access2007. Vê aqui alguns exemplos:

http://www.connectionstrings.com/access-2007

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estive a fazer umas experiências, mas ele dá erro.

Tenho o seguinte código:


Dim myConnectionString As String = _
        "provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\" & Application.StartupPath & "projecto_bd.mdb;Persist Security Info=False;"
        Dim connection As New SqlConnection(myConnectionString)
        Dim SQL As String = "SELECT username, password FROM mm_users WHERE ID = @ID;"
        'Dá erro aqui, no "da"
        Dim da As New OleDbDataAdapter(SQL, connection)
        da.SelectCommand.Parameters.Add("2ID", OleDbType.VarChar).Value = SESSION_id
        connection.Open()

O erro é:

Error 2 Overload resolution failed because no accessible 'New' can be called with these arguments:

    'Public Sub New(selectCommandText As String, selectConnection As System.Data.OleDb.OleDbConnection)': Value of type 'System.Data.SqlClient.SqlConnection' cannot be converted to 'System.Data.OleDb.OleDbConnection'.

    'Public Sub New(selectCommandText As String, selectConnectionString As String)': Value of type 'System.Data.SqlClient.SqlConnection' cannot be converted to 'String'. C:\Users\utilizador\Documents\Visual Studio 2008\Projects\projrcto\projecto\Gerir.vb 19 13 Projecto1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Duas coisas mal/que não entendo:

Ou usas uma ou outra |DataDirectory| ou Application.StartupPath

Altera para :

Dim myConnectionString As String = _

        "provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\projecto_bd.mdb;Persist Security Info=False;"

Mas além disso, o formato não deve ser mdb ... Não estás a usar Office 2007 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, estou a usar 2003, disseram-me que ocupava menos espaço e tinha mais funções/era mais fácil de integrar.

No entanto, contínua a dar o mesmo erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, estou a usar 2003, disseram-me que ocupava menos espaço e tinha mais funções/era mais fácil de integrar.

No entanto, contínua a dar o mesmo erro.

Claro! A connection string é diferente.

Usa algo assim: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O User Id=admin;Password= é mesmo necessário?

E o erro persiste. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O User Id=admin;Password= é mesmo necessário?

E o erro persiste. ;)

~

Podes não utilizar (caso não tenhas definido)

Deve dar assim:

Dim myConnectionString As String = _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\projecto_bd.mdb;"

Mas é melhor verificares se a base de dados está mesmo junto ao exe ... faz isto:

If Not Io.File.Exists(Application.StartupPath & "\projecto_bd.mdb") Then
   MessageBox.Show("O ficheiro não foi encontrado")
End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, está. Já não dá erro.

Resolvido, o código fica assim:


Dim myConnectionString As String = _
        "provider=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "projecto_db.mdb;Persist Security Info=False;"
        Dim connection As New OleDbConnection(myConnectionString)
        Dim SQL As String = "SELECT username, password FROM mm_users WHERE ID = @ID;"
        
        'Aqui não era SQL mas sim OleDb
        Dim da As New OleDbDataAdapter(SQL, connection)
        da.SelectCommand.Parameters.Add("2ID", OleDbType.VarChar).Value = SESSION_id
        connection.Open()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora