Bom dia a todos, estou precisando da ajuda de vocês. Tenho um bd que possui uns campos [data1] e [data2]. No campo [data2] do formulário, inseri uma expressão =[data1]+365, o cálculo funciona perfeitamente no form, porém não registra o resultado na tabela...Por favor me ajudem leigo no Access. Valeu
3 participantes
Como registrar na tabela, o cálculo feito pela expressão na fonte de controle
Bruno Motta- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 6
Registrado : 06/08/2013
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
Você ao inserir =[data1]+365, na fonte de controle está a alterar a mesma, ae jamais vai gravar na tabela por esse campo.
Tem duas possibilidades;
1ª Ou faz esse calculo em consulta.
2ª Ou envia o valor para o campo de origem da tabela, via VBA.
Tem duas possibilidades;
1ª Ou faz esse calculo em consulta.
2ª Ou envia o valor para o campo de origem da tabela, via VBA.
Private Sub Form_Current()
Me.SeuCampo.Value = Me.SeuCampoCalculado.Value
Me.SeuCampo.Requery
End Sub
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
Bruno Motta- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 6
Registrado : 06/08/2013
JPaulo, agradeço por retornar. Mas como eu disse sou meio leigo em Access, me diz aí qual evento eu colo o código. Ou se for na consulta onde que colocarei a fórmula =[data1]+365 ? em critérios?
Valeu de novo
Valeu de novo
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
O evento é explicito na minha mensagem "Private Sub Form_Current()"
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
Bruno Motta- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 6
Registrado : 06/08/2013
Agradeço a ajuda amigo, mas não funcionou aqui.
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
Grande, a minha bola de cristal já se partiu e não consigo visualizar o porquê de não funcionar.
Quer anexar aqui parte do seu banco, ou um pequeno exemplo ?
Quer anexar aqui parte do seu banco, ou um pequeno exemplo ?
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
Bruno Motta- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 6
Registrado : 06/08/2013
- Mensagem nº7
Vamos tentar de novo..rs
Olá JPaulo, cara tentei de tudo, mas acho que tenho q aprender bastante ainda de access kkk.
Vou anexar o bd pra vc me ajudar melhor, e tentar desvendar e consertar pra mim esses campos.
Valeu mesmo, te agradeço muito.
Obs.: Estou enviando um print da tela do controle pois bd é muito grande. Mas coloquei as fórmulas dentro do campo como havia dito da maneira fiz anterior, que não estava registrando os dados calculados no form para a tabela.
Por favor JPaulo me ajude sei q vc é o cara. :lol https://2img.net/r/ihimg/photo/my-images/22/j9yh.jpg/
Vou anexar o bd pra vc me ajudar melhor, e tentar desvendar e consertar pra mim esses campos.
Valeu mesmo, te agradeço muito.
Obs.: Estou enviando um print da tela do controle pois bd é muito grande. Mas coloquei as fórmulas dentro do campo como havia dito da maneira fiz anterior, que não estava registrando os dados calculados no form para a tabela.
Por favor JPaulo me ajude sei q vc é o cara. :lol https://2img.net/r/ihimg/photo/my-images/22/j9yh.jpg/
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
Envie para me email;
jpaulo65@gmail.com
jpaulo65@gmail.com
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
Lamcarter- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 40
Registrado : 29/06/2013
- Mensagem nº9
Desculpe a intromissão
JP, desde já desculpe me meter, porém tenho o mesmo problema do nosso amigo, tenho um fomulário com uma macro inserida em uma caixa de texto (em propriedade da caixa de texto, aba DADOS, opção fonte de controle - o comando que chama a macro)
No formulário aparece certinho, roda a macro e manda pra tela o dado, mas não sei como fazer para mandar esse dado para a TABELA ou BANCO.
E também sou novato em acces.
olha a macro que uso e vi os comandos que vc colocou acima, mas também nao consegui inseri-los na macro, pode me auxiliar.
'Função para calcular a idade do acolhido
Function CalcIdadeAcolhido() As String
' Fornece a idade em anos, meses e dias
On Error GoTo CalcIdadeAcolhido_Err
Dim sTmp As String ' valor tmp da função
Dim nDMA As Long ' n Anos, Meses, Dias
Dim NewDate As Date ' data auxiliar de cálculo
Dim sSngPlural As String ' string (mês, meses), (ano, anos)
Dim dtData1 As Date ' data inicial de cálculo
Dim dtData2 As Date ' data final
If IsNull([DataNascimentoAcolhido]) Then 'Campo DataNascimentoAcolhido onde está a data de nacimento
Exit Function
End If
dtData1 = [DataNascimentoAcolhido]
dtData2 = Now
' Bloco Ano ---------------------
' Calcula número inteiro de anos
nDMA = DateDiff("yyyy", dtData1, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 ano
If DateAdd("yyyy", nDMA, dtData1) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " ano, "
If nDMA > 1 Then sSngPlural = " anos, "
sTmp = nDMA & sSngPlural
' Bloco Mês ---------------------
' Nova data de referência
NewDate = DateAdd("yyyy", nDMA, dtData1)
nDMA = DateDiff("m", NewDate, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 mês
If DateAdd("m", nDMA, NewDate) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " mês e "
If nDMA > 1 Then sSngPlural = " meses e "
sTmp = sTmp & nDMA & sSngPlural
' Bloco Dia ---------------------
NewDate = DateAdd("m", nDMA, NewDate)
nDMA = DateDiff("d", NewDate, dtData2)
sSngPlural = " dia"
If nDMA > 1 Then sSngPlural = " dias"
sTmp = sTmp & nDMA & sSngPlural
' Valor final da função
CalcIdadeAcolhido = sTmp
CalcIdadeAcolhido_Fim:
Exit Function
CalcIdadeAcolhido_Err:
MsgBox Err.Description
Resume CalcIdadeAcolhido_Fim
End Function
desde já agradeço.
No formulário aparece certinho, roda a macro e manda pra tela o dado, mas não sei como fazer para mandar esse dado para a TABELA ou BANCO.
E também sou novato em acces.
olha a macro que uso e vi os comandos que vc colocou acima, mas também nao consegui inseri-los na macro, pode me auxiliar.
'Função para calcular a idade do acolhido
Function CalcIdadeAcolhido() As String
' Fornece a idade em anos, meses e dias
On Error GoTo CalcIdadeAcolhido_Err
Dim sTmp As String ' valor tmp da função
Dim nDMA As Long ' n Anos, Meses, Dias
Dim NewDate As Date ' data auxiliar de cálculo
Dim sSngPlural As String ' string (mês, meses), (ano, anos)
Dim dtData1 As Date ' data inicial de cálculo
Dim dtData2 As Date ' data final
If IsNull([DataNascimentoAcolhido]) Then 'Campo DataNascimentoAcolhido onde está a data de nacimento
Exit Function
End If
dtData1 = [DataNascimentoAcolhido]
dtData2 = Now
' Bloco Ano ---------------------
' Calcula número inteiro de anos
nDMA = DateDiff("yyyy", dtData1, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 ano
If DateAdd("yyyy", nDMA, dtData1) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " ano, "
If nDMA > 1 Then sSngPlural = " anos, "
sTmp = nDMA & sSngPlural
' Bloco Mês ---------------------
' Nova data de referência
NewDate = DateAdd("yyyy", nDMA, dtData1)
nDMA = DateDiff("m", NewDate, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 mês
If DateAdd("m", nDMA, NewDate) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " mês e "
If nDMA > 1 Then sSngPlural = " meses e "
sTmp = sTmp & nDMA & sSngPlural
' Bloco Dia ---------------------
NewDate = DateAdd("m", nDMA, NewDate)
nDMA = DateDiff("d", NewDate, dtData2)
sSngPlural = " dia"
If nDMA > 1 Then sSngPlural = " dias"
sTmp = sTmp & nDMA & sSngPlural
' Valor final da função
CalcIdadeAcolhido = sTmp
CalcIdadeAcolhido_Fim:
Exit Function
CalcIdadeAcolhido_Err:
MsgBox Err.Description
Resume CalcIdadeAcolhido_Fim
End Function
desde já agradeço.
Bruno Motta- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 6
Registrado : 06/08/2013
JPaulo, me desculpe demorar a responder, pois fiquei sem internet.
Se ainda poder me ajudar agradeço!
Vamos lá, a pergunta agora é a seguinte, se eu quiser usar esse cód. abaixo...
Private Sub Form_Current()
Me.SeuCampo.Value = Me.SeuCampoCalculado.Value
Me.SeuCampo.Requery
End Sub
Em qual evento eu o usaria? No evento do form?No evento após atualizar do campocalculado ou do campoderegistro?
Se ainda poder me ajudar agradeço!
Vamos lá, a pergunta agora é a seguinte, se eu quiser usar esse cód. abaixo...
Private Sub Form_Current()
Me.SeuCampo.Value = Me.SeuCampoCalculado.Value
Me.SeuCampo.Requery
End Sub
Em qual evento eu o usaria? No evento do form?No evento após atualizar do campocalculado ou do campoderegistro?
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
Está ae mesmo;
Form_Current()
Form_Current()
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
Conteúdo patrocinado
» [Resolvido]erro na expressão na fonte do controle
» [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba
» Como calculo um resultado de uma tabela
» [Resolvido]Como fazer para uma caixa de combinacao (vinda de outra tabela) retornar o valor da 2 coluna em uma expressao na consulta?
» [Resolvido]Usar consulta como fonte de controle em caixa de texto
» [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba
» Como calculo um resultado de uma tabela
» [Resolvido]Como fazer para uma caixa de combinacao (vinda de outra tabela) retornar o valor da 2 coluna em uma expressao na consulta?
» [Resolvido]Usar consulta como fonte de controle em caixa de texto