VISUAL STUDIO 2010 - USAR O ACCESS 2007

TBANDREATA 18/05/2012 21:56:33
#402303
Boa noite companheiros,

preciso de uma ajuda para algo que sei que é simples mas não estou conseguindo .

Tenho uma conexão com o Access 2007, e estou usando o Visual Studio prof 2010.

Esta aparecendo um erro que diz... Operação não permitida quando o objeto está aberto.

Esse erro acontece apos validar se a senha é a que o usuario difitou... segue codigo!
Valeu!
______________________________________________________________________________
Imports System.Data.OleDb

Public Class Login

[ô] Variaveis do form
Dim Conectar As New ADODB.Connection
Dim Rec_dados As New ADODB.Recordset
Dim dataset As New DataSet
Dim Compara As String
Dim da As New OleDbDataAdapter


Private Sub Login_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
txt_Login.BackColor = Color.Aqua
txtSenha.BackColor = Color.Aqua

End Sub


Private Sub btnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEntrar.Click

[ô] conecta e abre o banco de dados
Conectar.ConnectionString = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BD_ClosetZoe\ClosetZoe.accdb[Ô]
*** o erro aponta para a linha de cima rsrs

Conectar.Open()
[ô] seleciona o dado
Rec_dados.Open([Ô]select senha from Logim where [ô]login[ô]=[ô][Ô] & CStr(txt_Login.Text) & [Ô][ô][Ô], Conectar, ADODB.CursorTypeEnum.adOpenStatic,
ADODB.LockTypeEnum.adLockOptimistic)

Compara = Rec_dados.Fields([Ô]senha[Ô]).Value()
If Compara = txtSenha.Text And txt_Login.Text <> [Ô][Ô] Then
MessageBox.Show([Ô]Ola [Ô] + txt_Login.Text, [Ô]Login realizado com Sucesso![Ô], MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Conectar.Close()
Else
MessageBox.Show([Ô]Senha confere para login [Ô] + txt_Login.Text, [Ô]Erro![Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
txt_Login.Text = Focus()
End If

End Sub

Private Sub btnSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click
End
End Sub
End Class
ROBIU 19/05/2012 06:25:03
#402307
Resposta escolhida
Você está abrindo a conexão em outra rotina. Soluções:

1 - Feche a conexão e torne a abrir conforme abaixo:
If conectar.State = ConnectionState.Open Then   conectar.Close()
Conectar.ConnectionString = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BD_ClosetZoe\ClosetZoe.accdb[Ô]
Conectar.Open()


2 - Comente a parte do código que abre a conexão, pois ela já está aberta:

[ô] conecta e abre o banco de dados
[ô] Conectar.ConnectionString = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BD_ClosetZoe\ClosetZoe.accdb[Ô]
[ô] Conectar.Open()
[ô] seleciona o dado
Rec_dados.Open([Ô]select senha from Logim where [ô]login[ô]=[ô][Ô] & CStr(txt_Login.Text) & [Ô][ô][Ô], Conectar, ADODB.CursorTypeEnum.adOpenStatic,
ADODB.LockTypeEnum.adLockOptimistic)


3 - Localize onde a conexão foi aberta pela primeira vez e feche-la, depois de executar as operações para as quais foi aberta.
PCAMPOS 19/05/2012 09:31:45
#402311
tenta assim


Citação:


Conectar.close
Conectar.open



1 fechas a conecçao e depois abres
Tópico encerrado , respostas não são mais permitidas