Usuário com melhor resposta
Problema com conexão

Pergunta
-
Boa noite, estou com um problema de conexão com o BD em Access!
É o seguinte, se abro a conexão me dá o seguinte erro:
"Not allowed to change the 'ConnectionString' property. The connection's current state is open."
Se fecho a conexão me dá o seguinte erro:
"ExecuteReader requires an open and available Connection. The connection's current state is closed."
Este é o código do módulo de conexão.
Imports System.Data.OleDb Module Module1 Public acsconn As New OleDb.OleDbConnection Public acsdr As OleDbDataReader Public strsql As String Sub connect() acsconn.ConnectionString = "Provider=microsoft.ace.oledb.12.0; data source=|datadirectory|\Copa.accdb;" acsconn.Open() End Sub End Module
Este é o código do botão Update.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Module1.connect() strsql = "Select * from Jogos" & Label2.Text & " WHERE Jogo='" & c.text & "'" Dim acscmd As New OleDb.OleDbCommand acscmd.CommandText = strsql acscmd.Connection = acsconn acsdr = acscmd.ExecuteReader While (acsdr.Read()) T1.Text = (acsdr("Time1")) T2.Text = (acsdr("Time2")) End While acscmd.Dispose() acsdr.Close() End Sub
No que estou errando?
Desde já agradeço a atenção......
- Editado McJota sexta-feira, 9 de maio de 2014 00:20
Respostas
-
OK, você sabe a parte onde:
Public acsconn As New OleDb.OleDbConnection
Aqui você declarou o "acsconn" com "New". O que acontece é que o "New" é disparado na criação do MODULE, que acontece assim que o programa inicia, ele aloca os módulos e define as variáveis. Remova o método "New" e reescreva:
Sub connect() Const Conn As String = "Provider=microsoft.ace.oledb.12.0; data source=|datadirectory|\Copa.accdb;" acsconn = New OleDb.OleDbConnection(Conn) acsconn.Open() End Sub
Somente
- Marcado como Resposta McJota sexta-feira, 9 de maio de 2014 04:59
Todas as Respostas
-
OK, você sabe a parte onde:
Public acsconn As New OleDb.OleDbConnection
Aqui você declarou o "acsconn" com "New". O que acontece é que o "New" é disparado na criação do MODULE, que acontece assim que o programa inicia, ele aloca os módulos e define as variáveis. Remova o método "New" e reescreva:
Sub connect() Const Conn As String = "Provider=microsoft.ace.oledb.12.0; data source=|datadirectory|\Copa.accdb;" acsconn = New OleDb.OleDbConnection(Conn) acsconn.Open() End Sub
Somente
- Marcado como Resposta McJota sexta-feira, 9 de maio de 2014 04:59
-