pessoal eu alterei o codigo para meu form. mas nao acontece nada na TblLog. e nao apresenta erro quando uso o form, tipo faço alteraçao e clico no botal salvar ok se clico no botao novo ele abre nova tela cadastro tudo certinho.
eu criei o ModUtilizador ficou assim:
Declare Function TSB_API_GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function GetUserName_TSB() As String
Dim lngLen As Long
Dim strBuf As String
Const MaxUserName = 255
strBuf = Space(MaxUserName)
lngLen = MaxUserName
If CBool(TSB_API_GetUserName(strBuf, lngLen)) Then
GetUserName_TSB = Trim(login.usuario)
Else
GetUserName_TSB = ""
End If
End Function
nesse codigo preciso por nome de algum campo do meu BD?
no botao salvar eu tenho a instruçao assim:
Private Sub Command8_Click()
Dim strChekaDiferente As Boolean
Dim strSQL As String
Dim ctl As Control
Dim strUser As String
On Error Resume Next
strChekaDiferente = False
strUser = GetUserName_TSB = Trim(login.usuario)
If Me.NewRecord Then
strChekaDiferente = True
strSQL = "INSERT INTO TblLog (Utilizador, LogData, NomeForm, NomeCampo, ValorAntigo, ValorAtual, Status) Values('" & getUsuarioAtual = strUsuarioAtual & "', Now(),'" & Me.Form.Name & "','" & Me.COMPRA & "','" & Me.VENDA & "','" & Me.ID_STATUSPEDIDO & "','" & "Novo Registro" & "')"
DoCmd.RunSQL strSQL
Else
strChekaDiferente = False
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case acTextBox, acComboBox, acListBox, acOptionGroup, acCheckBox
If ctl.Value <> ctl.OldValue Or (IsNull(ctl.Value) Or ctl.Value = "") Then
strChekaDiferente = True
DoCmd.SetWarnings False
strSQL = "INSERT INTO TblLog (Utilizador, LogData, NomeForm, NomeCampo, ValorAntigo, ValorAtual, Status) Values('" & getUsuarioAtual = strUsuarioAtual & "', Now(),'" & Me.Form.Name & "','" & Me.COMPRA & "','" & Me.VENDA & "','" & Me.ID_STATUSPEDIDO & "','" & "Registro Alterado" & "')"
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
strChekaDiferente = False
Else
Cancel = True
End If
End Select
Next ctl
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End Sub
Private Sub Comando3_Click()
On Error GoTo 2
DoCmd.SetWarnings False
Call Command8_Click
DoCmd.GoToRecord , , acNext
Exit_Comando3_Click:
Exit Sub
2:
MsgBox "Você está no ultimo registro...", vbCritical
Exit Sub
DoCmd.SetWarnings True
End Sub
Private Sub Comando4_Click()
On Error GoTo 1
DoCmd.SetWarnings False
Call Command8_Click
DoCmd.GoToRecord , , acPrevious
Exit_Comando4_Click:
Exit Sub
1:
MsgBox "Você está no primeiro registro...", vbCritical
Exit Sub
DoCmd.SetWarnings True
End Sub
Private Sub Comando5_Click()
Call Command8_Click
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub Command9_Click()
Call Command8_Click
DoCmd.Close
End Sub
em vermelho coloquei os nomes dos campos do meu form que quero que sejam gravados quando alterados ou inseridos como novos.
as funções estao ok. so nao salva o registro na tabela Log.
podem me ajudar