Atualizei a versão do driver mysql connector instalado na minha máquina e tive problemas com minhas aplicações.
Fiquei imaginando isso acontecendo na máquina dos clientes e o tamanho da dor de cabeça.
Deve haver outras formas de se fazer isso, mas atualmente esta me resolve
Eu utilizo assim
Fiquei imaginando isso acontecendo na máquina dos clientes e o tamanho da dor de cabeça.
Deve haver outras formas de se fazer isso, mas atualmente esta me resolve
- Código:
Private Sub fncConectorVersao()
Dim i As Byte
Dim j As Byte
Dim k As String
Dim l As String
Dim m As Boolean
'locais a serem pesquisados
k = Environ("PROGRAMFILES(x86)") & "|" & Environ("ProgramFiles") & "|" & Environ("Programw6432")
'versão a serem pesquisadas
l = "5.1|5.3|8.0"
'access 2010 e superiores
#If VBA7 Then
'access 64 bits
#If Win64 Then
'varrendo versões a serem pesquisadas
For i = 0 To UBound(Split(l, "|"))
'varrendo locais a serem pesquisados
'nesse caso particular, somente o resultado de Environ("Programw6432")
For j = 2 To 2
'atribuindo true à variável "m" caso exista na subpasta MySQL
'a pasta com uma das versões a serem pesquisadas
m = Nz(Dir(Split(k, "|")(j) & "\MySQL\Connector ODBC " & Split(l, "|")(i), vbDirectory)) <> ""
'se a variável "m" for true então saia deste laço for
If m Then Exit For
'próximo local
Next j
'se a variável "m" for true então saia deste laço for
If m Then Exit For
'próxima versão
Next i
'access 32 bits
#Else
'varrendo versões a serem pesquisadas
For i = 0 To UBound(Split(l, "|"))
'varrendo locais a serem pesquisados
'nesse caso particular, não incluir o resultado de Environ("Programw6432")
For j = 0 To 1
'atribuindo true à variável "m" caso exista na subpasta MySQL
'a pasta com uma das versões a serem pesquisadas
m = Nz(Dir(Split(k, "|")(j) & "\MySQL\Connector ODBC " & Split(l, "|")(i), vbDirectory)) <> ""
'se a variável "m" for true então saia deste laço for
If m Then Exit For
'próximo local
Next j
'se a variável "m" for true então saia deste laço for
If m Then Exit For
'próxima versão
Next i
'fim da verificação condicional
#End If
'access 2007
#Else
'varrendo versões a serem pesquisadas
For i = 0 To UBound(Split(l, "|"))
'varrendo locais a serem pesquisados
'nesse caso particular, não incluir o resultado de Environ("Programw6432")
For j = 0 To 1
'atribuindo true à variável "m" caso exista na subpasta MySQL
'a pasta com uma das versões a serem pesquisadas
m = Nz(Dir(Split(k, "|")(j) & "\MySQL\Connector ODBC " & Split(l, "|")(i), vbDirectory)) <> ""
'se a variável "m" for true então saia deste laço for
If m Then Exit For
'próximi local
Next j
'se a variável "m" for true então saia deste laço for
If m Then Exit For
'próxima versão
Next i
'fim da verificação condicional
#End If
'se a variável "m" for true então
If m Then
'mensagem com a versão detectada
Call MsgBox("Versão MySQL Connector/ODBC detectada: " & Split(l, "|")(i), vbInformation, "MySQL")
'senão
Else
'mensagem sem versão
Call MsgBox("Nenhuma versão do MySQL Connector/ODBC detectada.", vbExclamation, "MySQL")
'fim da verificação condicional
End If
End Sub
Eu utilizo assim
- Código:
...
'se a variável "m" for true então
If m Then
'atualizo versão na tabela que armazena parâmetros da aplicação
Call CurrentDb.Execute("update tblParametros set driver = '" & Split(l, "|")(i) & IIf(i > 0, " ANSI", "") & "';")
'senão
Else
'mensagem sem versão
Call MsgBox("Nenhuma versão do MySQL Connector/ODBC detectada.", vbExclamation, "MySQL")
'fim da verificação condicional
End If