Abaixo há um código que será executado toda vez que um determinado arquivo excel for aberto com o objetivo de bloquear o acesso de computadores não autorizados.
Para isso a ideia é verificar o serial da placa mãe do computador e verificar se o mesmo está cadastrado em um banco de dados mysql. Se não estiver cadastrado fecha o arquivo e caso contrário libera o acesso.
A função Workbook_Open é responsável por liberar ou bloquear o acesso
A função MBSerialNumber pega o serial da placa mãe
A função ConnectDB acessa e realizar uma pesquisa do DB MySQL verificando se o serial do computar está cadastrado.
Justamente nesta última função estou tendo o erro 3709 (The connection cannot be used to perform this operation. Its either closed or invalid in this context), na linha 4 de baixo para cima. Gostaria da ajuda de vocês para solucionar este problema.
Public cn AsVariantPrivateSubWorkbook_Open()CallMBSerialNumberCallConnectDBIf rs <1ThenMsgBox("Data Security failier, This workbook will close")ActiveWorkbook.SaveActiveWorkbook.CloseEndIfEndSubPublicFunctionMBSerialNumber()AsStringDim objs AsObjectDim obj AsObjectDim WMI AsObjectDim sAns AsStringSet WMI =GetObject("WinMgmts:")Set objs = WMI.InstancesOf("Win32_BaseBoard")ForEach obj In objs
sAns = sAns & obj.SerialNumberIf sAns < objs.CountThen sAns = sAns &","NextMBSerialNumber= sAns
EndFunctionPrivateSubConnectDB()Set cn =CreateObject("ADODB.Connection")
cn.Open"DRIVER={MySQL ODBC 5.3 ANSI Driver};"& _
"SERVER=xxx.com.br;"& _
"DATABASE=xxx;"& _
"USER=xxx;"& _
"PASSWORD=xxx"Set rs =CreateObject("ADODB.Recordset")
rs.Open"SELECT COUNT(serial) FROM users WHERE serial='"&MBSerialNumber&"', cn, adOpenStatic, adLockOptimistic"";"
cn.CloseSet cn =NothingEndSub
Pergunta
matheusrf
Prezados boa tarde,
Abaixo há um código que será executado toda vez que um determinado arquivo excel for aberto com o objetivo de bloquear o acesso de computadores não autorizados.
Para isso a ideia é verificar o serial da placa mãe do computador e verificar se o mesmo está cadastrado em um banco de dados mysql. Se não estiver cadastrado fecha o arquivo e caso contrário libera o acesso.
A função Workbook_Open é responsável por liberar ou bloquear o acesso
A função MBSerialNumber pega o serial da placa mãe
A função ConnectDB acessa e realizar uma pesquisa do DB MySQL verificando se o serial do computar está cadastrado.
Justamente nesta última função estou tendo o erro 3709 (The connection cannot be used to perform this operation. Its either closed or invalid in this context), na linha 4 de baixo para cima. Gostaria da ajuda de vocês para solucionar este problema.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.