SALVAR CAMPO DATA VAZIO ACCESS

IRENKO 02/09/2010 17:42:27
#352046
Poxa! Eu testei aqui o seu código com as minhas alterações e esta gravando normalmente, sei lá.....!
IRENKO 02/09/2010 17:48:10
#352049
Eu alterei o código de alteração do Form (frmContrato), não é esse que vc esta com dificuldades?


Private Sub GravarDados()
Dim strSQL As String
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
vConfMsg = vbExclamation + vbOKOnly + vbSystemModal
vErro = False

[ô]Se aconteceu um erro de digitação, sai da sub sem gravar:
If vErro Then Exit Sub
Screen.MousePointer = vbHourglass
[ô]Verifica a operação e cria o comando SQL correspondente:


If NewRecord = True Then

Set OP = New ADODB.Command
With OP
strSQL = [Ô]INSERT INTO tbcontrato (ContratoNro, Matricula, CodCargo, CodFuncao, CodSetor, DtAdmissao, DtDesligado, Funcionario,[Ô]
strSQL = strSQL & [Ô]CodTipoContrato, DtConcurso, CodAto, NroAto, DtAto)[Ô]

strSQL = strSQL & [Ô]VALUES([Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtnrocontrato.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtMatricula.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtCodCargo.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtCodFuncao.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtCodSetor.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & IIf(Not IsDate(txtAdmissao.Text), [Ô]Null[Ô], Format(txtAdmissao.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & IIf(Not IsDate(txtDesligado.Text), [Ô]Null[Ô], Format(txtDesligado.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & Combo1.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtCodTipoContrato.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtDataConcurso.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtCodAto.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtNroAto.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô][ô][Ô] & txtDataAto.Text & [Ô][ô])[Ô]
End With

Else
Set OP = New ADODB.Command
With OP
.ActiveConnection = conn
strSQL = [Ô]UPDATE tbcontrato SET [Ô]
strSQL = strSQL & [Ô]CodCargo=[ô][Ô] & txtCodCargo.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]CodFuncao=[ô][Ô] & txtCodFuncao & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]CodSetor=[ô][Ô] & txtCodSetor & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]DtConcurso=[ô][Ô] & txtDataConcurso.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]CodAto=[ô][Ô] & txtCodAto.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]Funcionario=[ô][Ô] & Combo1.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]codTipoContrato=[ô][Ô] & txtCodTipoContrato.Text & [Ô][ô],[Ô]
strSQL = strSQL & [Ô]DtAdmissao=[Ô] & IIf(Not IsDate(txtAdmissao.Text), [Ô]null[Ô], [Ô][ô][Ô] + Format(txtAdmissao.Text, [Ô]dd/mm/yyyy[Ô]) + [Ô][ô][Ô]) & [Ô],[Ô]
strSQL = strSQL & [Ô]DtDesligado=[Ô] & IIf(Not IsDate(txtDesligado.Text), [Ô]null[Ô], [Ô][ô][Ô] + Format(txtDesligado.Text, [Ô]dd/mm/yyyy[Ô]) + [Ô][ô][Ô]) & [Ô],[Ô]
strSQL = strSQL & [Ô]NroAto=[ô][Ô] & txtNroAto.Text & [Ô][ô][Ô]
strSQL = strSQL & [Ô]Where Matricula =[Ô] & txtMatricula.Text
.CommandText = strSQL
.Execute
End With

End If

MsgBox [Ô]Gravação concluída com sucesso.[Ô], _
vbApplicationModal + vbInformation + vbOKOnly, _
[Ô]Gravação OK[Ô]

[ô]Chama a sub que limpa os dados do formulário:
Limpar_Campos

Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub

GoTo Saida
End Sub
ALANTB 02/09/2010 17:54:10
#352054
IRENKO, ta dando erro de operadores e de sintaxe, tando para INCLUIR como para UPDATE. Vou copiar esse codigo acima e testar ....
MARCELO.TREZE 03/09/2010 11:52:58
#352113
colelga posta a estrutura inteira de sua tabela

ex:

codcargo = numerico
dtvencimento = data/hora
etc,etc
ALANTB 03/09/2010 12:48:20
#352119
MARCELO-TREZE, com as modificações que o IRENKO fez no meu projeto (pagina anterior) agora consigo fazer UPDATE dos dados, mas continuo sem conseguir INCLUIR novos contratos.Se quizer é so baixar um cópia para tu verificar a estrutura do banco por inteiro. Mesmo assim, segue um print com uma parcial da estrutura das tabelas. A dificuldade em incluir ainda é a mesma, incluir em branco os campos data do formulario.Outra coisa, para poder fazer UPDATE sem dar erro, tive de COMENTAR as SUB de LostFocus dos campos DATA,mas dai tenho de digitar as barras das datas.Arruma um lado estraga outro, tá uma verdadeira zona. Da uma olhada, que eu continuo tentando por aqui.....
MARCELO.TREZE 03/09/2010 13:59:16
#352126
Bom baseado em sua tabela fiz as duas instruções, teste.

inclusão

CommandText = [Ô]INSERT INTO tbcontrato [Ô] & _
[Ô](ContratoNro,Matricula, CodCargo,CodFuncao,CodSetor,DtAdmissao,DtRescisao,Funcionario,CodTipoContrato,DtConcurso,CodAto,NroAto, [Ô] & _
[Ô]DtAto) VALUES ([Ô] & _
txtMatricula.Text & [Ô],[Ô] & _
txtCodCargo.Text & [Ô],[Ô] & _
txtCodFuncao.Text & [Ô],[Ô] & _
txtCodSetor.Text & [Ô],[Ô] & _
IIf(txtAdmissao.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtAdmissao.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô],[Ô] & _
IIf(txtRescisao.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtRescisao.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô],[ô][Ô] &
Combo1.Text & [Ô][ô],[Ô] & _
txtCodTipoContrato.Text & [Ô],[ô][Ô] & _
IIf(txtDataConcurso.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtDataConcurso.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô],[Ô] & _
txtCodAto.Text & [Ô],[Ô] & _
txtNroAto.Text & [Ô],[Ô] & _
IIf(txtDataAto.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtDataAto.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô]);[Ô]


Alteração:
.CommandText = [Ô]update tbcontrato set [Ô] & _
[Ô](CodCargo =[Ô] & txtCodCargo.Text & [Ô],[Ô] & _
[Ô]CodFuncao = [Ô] & txtCodFuncao & [Ô],[Ô] & _
[Ô]CodSetor = [Ô] & txtCodSetor & [Ô],[Ô] & _
[Ô]DtAdmissao = [Ô] & IIf(txtAdmissao.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtAdmissao.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô],[Ô] & _
[Ô]DtRescisao = [Ô] & IIf(txtRescisao.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtRescisao.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô],[Ô] &
[Ô]Funcionario= [ô][Ô] & Combo1.Text & [Ô][ô],[Ô] & _
[Ô]codTipoContrato= [Ô] & txtCodTipoContrato.Text & [Ô],[Ô] & _
[Ô]DtConcurso = [Ô] & IIf(txtDataConcurso.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtDataConcurso.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô],[Ô] & _
[Ô]CodAto = [Ô] & txtCodAto.Text & [Ô],[Ô] & _
[Ô]NroAto = [Ô] & txtNroAto.Text & [Ô],[Ô] & _
[Ô]DtAto = [Ô] & IIf(txtDataAto.Text = [Ô][Ô], [Ô]NULL[Ô],”#” & Format(txtDataAto.Text, [Ô]mm/dd/yyyy[Ô]) & “#”) & [Ô])[Ô] & _
[Ô]where Matricula = [Ô] & txtMatricula.Text & [Ô][Ô]
IRENKO 03/09/2010 15:06:48
#352137
Meu caro, se neste mesmo Form (frmContrato) vc vai incluir e ou alterar um cadastro, vc tera q separar as coisas, ou seja, para incluir um funcionario crie um botão (Incluir) para controlar a variavel (NewRecord). Para configurar as barras de separação da data, exite aqui no forum varios exemplos para uso no KeyPress do objeto. Vou tentar arrumar seu codigo.
Página 3 de 3 [27 registro(s)]
Tópico encerrado , respostas não são mais permitidas