Olá amigos, estou travado em uma questão.
Tenho uma tabela no Mysql e outra no back end, quero sincronizar os dados do Mysql para o Access e vice e versa.
Tenho um campo no Mysql no tipo Decimal 10,2 preciso salvar meu campo tipo Moeda para esse campo mas da tipos incompatíveis, eis parte do código:
Talvez uma função com Replace resolveria colocando ponto no lugar da vírgula.
Private Sub btSalvar_Click()
On Error GoTo Trato
Dim v1 As Double
Dim v2 As Double
Dim strData As Date
strData = Format(Me.DataPagto, "yyyy-mm-dd")
v1 = Me.cxDespesa
v2 = Me.cxReceita
TENTA:
rsmy.Find "campo_concatenado ='" & campo_concatenado & "'", , , 1
'Se o registro existir altera
If Not rsmy.EOF Then 'se encontrou
rsmy!DataLancamento = Me.DataPagto
rsmy!HistoricoLancamento = Me.cxHistorico
rsmy!IgrejaNome = Me.NomeIgreja
rsmy!ValorDespesa = v1 'Nesses campos são o problema, no Access é moeda, no Mysql é Decimal, dá tipos incompatíveis
rsmy!ValorReceita = v2
rsmy!TipoLancamento = Me.QuadroTipo
rsmy!CodTipo = Me.cxCodTipo
rsmy!NuTalao = Me.cxTalao
rsmy!TipoOficial = Me.QuadroOficial
rsmy!Depto = Me.cboDepto
rsmy!NuCadastral = Me.cxNuIgreja
rsmy!campo_concatenado = Me.campo_concatenado
rsmy.Update
MsgBox "As alterações foram salvas com sucesso!", vbInformation, "OK"
Else
'Se o registro não existir salva
rsmy.AddNew
rsmy!DataLancamento = Me.DataPagto
rsmy!HistoricoLancamento = Me.cxHistorico
rsmy!IgrejaNome = Me.NomeIgreja
rsmy!ValorDespesa = v1
rsmy!ValorReceita = v2
rsmy!TipoLancamento = Me.QuadroTipo
rsmy!CodTipo = Me.cxCodTipo
rsmy!NuTalao = Me.cxTalao
rsmy!TipoOficial = Me.QuadroOficial
rsmy!Depto = Me.cboDepto
rsmy!NuCadastral = Me.cxNuIgreja
Me.campo_concatenado = Me.DataPagto & " " & Me.NomeIgreja
rsmy!campo_concatenado = Me.campo_concatenado
rsmy.Update
MsgBox "Registro salvo com sucesso!", vbInformation, "OK"
End If
'rsmy.Close 'fecha o recorset
'cnmy.Close 'fecha o banco de dados
Sai:
Exit Sub
Trato:
Select Case err.Number
Case 3704
Call MySQL_Server 'Carrega parametros do servidor
cnmy.Open "Driver={MySQL ODBC 5.1 Driver};Server=" & MyslqServidor & ";Database=" & MyslqDatabase & ";User=" & MyslqUsuario & "; Password=" & MyslqSenha & ";Option=3;"
rsmy.CursorLocation = adUseClient
If strIgrejaPermissao = "*" Then
rsmy.Open "Select * from mytblCaixaDeptos order by tblCaixaDeptos.NuCadastral;", cnmy, adOpenDynamic, adLockOptimistic
Else
Filtro = strIgrejaPermissao
rsmy.Open "Select * from mytblCaixaDeptos where NuCadastral=" & Filtro & ";", cnmy, adOpenDynamic, adLockOptimistic
End If
GoTo TENTA:
Case Else
MsgBox err.Number & " " & err.Description & err.HelpContext
'rsmy.Close 'fecha o recorset
'cnmy.Close 'fecha o banco de dados
Resume Sai
Tenho uma tabela no Mysql e outra no back end, quero sincronizar os dados do Mysql para o Access e vice e versa.
Tenho um campo no Mysql no tipo Decimal 10,2 preciso salvar meu campo tipo Moeda para esse campo mas da tipos incompatíveis, eis parte do código:
Talvez uma função com Replace resolveria colocando ponto no lugar da vírgula.
Private Sub btSalvar_Click()
On Error GoTo Trato
Dim v1 As Double
Dim v2 As Double
Dim strData As Date
strData = Format(Me.DataPagto, "yyyy-mm-dd")
v1 = Me.cxDespesa
v2 = Me.cxReceita
TENTA:
rsmy.Find "campo_concatenado ='" & campo_concatenado & "'", , , 1
'Se o registro existir altera
If Not rsmy.EOF Then 'se encontrou
rsmy!DataLancamento = Me.DataPagto
rsmy!HistoricoLancamento = Me.cxHistorico
rsmy!IgrejaNome = Me.NomeIgreja
rsmy!ValorDespesa = v1 'Nesses campos são o problema, no Access é moeda, no Mysql é Decimal, dá tipos incompatíveis
rsmy!ValorReceita = v2
rsmy!TipoLancamento = Me.QuadroTipo
rsmy!CodTipo = Me.cxCodTipo
rsmy!NuTalao = Me.cxTalao
rsmy!TipoOficial = Me.QuadroOficial
rsmy!Depto = Me.cboDepto
rsmy!NuCadastral = Me.cxNuIgreja
rsmy!campo_concatenado = Me.campo_concatenado
rsmy.Update
MsgBox "As alterações foram salvas com sucesso!", vbInformation, "OK"
Else
'Se o registro não existir salva
rsmy.AddNew
rsmy!DataLancamento = Me.DataPagto
rsmy!HistoricoLancamento = Me.cxHistorico
rsmy!IgrejaNome = Me.NomeIgreja
rsmy!ValorDespesa = v1
rsmy!ValorReceita = v2
rsmy!TipoLancamento = Me.QuadroTipo
rsmy!CodTipo = Me.cxCodTipo
rsmy!NuTalao = Me.cxTalao
rsmy!TipoOficial = Me.QuadroOficial
rsmy!Depto = Me.cboDepto
rsmy!NuCadastral = Me.cxNuIgreja
Me.campo_concatenado = Me.DataPagto & " " & Me.NomeIgreja
rsmy!campo_concatenado = Me.campo_concatenado
rsmy.Update
MsgBox "Registro salvo com sucesso!", vbInformation, "OK"
End If
'rsmy.Close 'fecha o recorset
'cnmy.Close 'fecha o banco de dados
Sai:
Exit Sub
Trato:
Select Case err.Number
Case 3704
Call MySQL_Server 'Carrega parametros do servidor
cnmy.Open "Driver={MySQL ODBC 5.1 Driver};Server=" & MyslqServidor & ";Database=" & MyslqDatabase & ";User=" & MyslqUsuario & "; Password=" & MyslqSenha & ";Option=3;"
rsmy.CursorLocation = adUseClient
If strIgrejaPermissao = "*" Then
rsmy.Open "Select * from mytblCaixaDeptos order by tblCaixaDeptos.NuCadastral;", cnmy, adOpenDynamic, adLockOptimistic
Else
Filtro = strIgrejaPermissao
rsmy.Open "Select * from mytblCaixaDeptos where NuCadastral=" & Filtro & ";", cnmy, adOpenDynamic, adLockOptimistic
End If
GoTo TENTA:
Case Else
MsgBox err.Number & " " & err.Description & err.HelpContext
'rsmy.Close 'fecha o recorset
'cnmy.Close 'fecha o banco de dados
Resume Sai