Boa Noite Pessoal, estou adaptar o código do mestre Plinio Mabesi e estou recebendo erro tipo conexão fechada quando a consulta é feita diz que não se pode fazer consulta com conexão fechada.
Será que estou a fazer algo errado?
Será que estou a fazer algo errado?
- Código:
'Cria uma conexão ADO
Public cn As New ADODB.Connection
'Cria um recordset ADO
Public rs As New ADODB.Recordset
Public argIp As String
Public argUsuario As String
Public argSenha As String
Public argBd As String
Public argPort As String
Public csql As String
Public sErr As Double 'Pega variavel de erro
'---------------------------------------------------------------------------------------
' PROCEDIMENTO: MySQL_Server
' DESCRIÇÃO: Carrega os dados para conexão ao servidor MySQL
'---------------------------------------------------------------------------------------
Public Sub MySQL_Server()
If sErr = -1 Then 'Habilita tratamento de erro
On Error GoTo MySQL_Server_Erro
End If
argIp = DLookup("[Valor]", "_Parametros", "[ID]=8") 'Servidor Web
argUsuario = DLookup("[Valor]", "_Parametros", "[ID]=10") 'Usuário do banco de dados
argSenha = DLookup("[Valor]", "_Parametros", "[ID]=11") 'Senha do banco de dados
argBd = DLookup("[Valor]", "_Parametros", "[ID]=12") 'Database
argPort = DLookup("[Valor]", "_Parametros", "[ID]=16") 'Porta
On Error GoTo 0
Exit Sub
MySQL_Server_Erro:
DoCmd.Hourglass False
MsgBox err.Description
End Sub
Public Sub conectarMySql(csql)
'Esta função abre a conexão com o MySql e a deixa ativa, e pode também abrir um recordset
'para testar a conexão.
If sErr = -1 Then 'Habilita tratamento de erro
On Error GoTo conectarMySql_Erro
End If
Call MySQL_Server
cn = "ODBC;Driver={MySQL ODBC 5.1 Driver};Server=" & argIp & ";User=" & argUsuario & ";Password=" & argSenha & ";Database=" & argBd & ";Port=" & argPort & ";Option=3;"
rs.CursorLocation = adUseClient
rs.Open csql, cn, adOpenDynamic, adLockBatchOptimistic
On Error GoTo 0
Exit Sub
conectarMySql_Erro:
DoCmd.Hourglass False
MsgBox err.Description
End Sub
Function executa(strSQL As String) As Boolean
On Error GoTo Err_executa
'Atualiza dados no Banco utilizando o código Sql passado à função,
'retornando verdadeiro caso a operação ocorra com sucesso
'ou falso caso ocorra algum problema
rs.Open strSQL, cn, 3, 3
executa = True
Exit_executa:
Exit Function
Err_executa:
executa = False
MsgBox err.Description
Resume Exit_executa
End Function
Function consulta(strSQL As String) As ADODB.Recordset
On Error GoTo Err_consulta
'Consulta os dados no Banco utilizando o código Sql passado à função,
'retornando um recordset com o resultado da consulta
rs.Open strSQL, cn, 3, 3
Set consulta = rs
Exit_consulta:
Exit Function
Err_consulta:
Set consulta = Nothing
MsgBox err.Description
Resume Exit_consulta
End Function